compiler-construction – 将抽象语法树转换为字节代码

前端之家收集整理的这篇文章主要介绍了compiler-construction – 将抽象语法树转换为字节代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在努力学习构建一个简单的编译器作为业余爱好.我的目标是 Java虚拟机.

我使用ANTLR插件Eclipse编写了一个简单的语法.

有人告诉我,Antlr生成的AST上有一个已知的方法节点,必须调用.
我打算使用ASM来生成字节码.
那么什么是方法节点?如何从ASM调用它并使其访问方法指令?

那么编译器的语义分析器呢?应该手动编写还是有任何生成器?

解决方法

你在这里问了很多不相关的问题.根据您定义的语言,可能会有您的语言中的方法节点,或者如果您的语言无条件地编译为main(String [])方法,则不会有任何方法节点.

有多种方法可以将AST转换为目标语言.大多数情况下,您不会直接生成代码,而是为您的目标平台生成一个AST,并使用一个树木行者通过一台漂亮的打印机生成代码.

语义分析是编译器的编程.在语法层面上阅读和理解输入是解析.您需要自己编写语义分析器,否则根本就不会编写编译器.

猜你在找的Java相关文章