【发布时间】:2016-08-13 22:53:26
【问题描述】:
我开始在我的编译器课程中使用 ANTLR 4,并且我已经创建了我的语法。 ANTLR 为我提供了 Lexer 和 Parser,但我如何生成中间代码?有人告诉我要使用 Jasmin,但我不知道如何使用。
注意:ANTLR 给了我 java 代码。
【问题讨论】:
-
什么是“中间码”?
-
@Vampire en.wikipedia.org/wiki/…
-
那么您的意思是如何从您使用 ANTLR 解析器/词法分析器解析的自定义语言生成 Java 字节码?如果是这样,那么你应该这样写。 ;-)
-
@Tadesse:您的编译器类没有关于如何定义和构建中间代码的理论和讲座?你一定有一个糟糕的编译器类。获取任何有关编译器的教科书(Aho/Ullman/Sethi “Compiler”)并阅读有关此主题的章节。你还有工作要做,但在理解了原则的情况下,这是一个编程问题。
-
@Vampire: 或者,如果 OP 不是指“Java 字节码”,则将其省略,因为它不相关。我认为 Vince 的回答以更符合经典编译器课程的方式对其进行了定义。