加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 03:06:00 所属栏目:Java 来源:网络整理
导读:我正在努力学习构建一个简单的编译器作为业余爱好.我的目标是 Java虚拟机. 我使用ANTLR插件为Eclipse编写了一个简单的语法. 有人告诉我,Antlr生成的AST上有一个已知的方法节点,必须调用. 我打算使用ASM来生成字节码. 那么什么是方法节点?如何从ASM调用它并
我正在努力学习构建一个简单的编译器作为业余爱好.我的目标是 Java虚拟机.

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

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读