【发布时间】:2017-05-17 07:19:02
【问题描述】:
(我几天前开始使用 ANTLR 进行语言冒险。我对语言理论和编译器构造的了解非常有限。如果这不是一个有效的问题,请见谅。)
ANTLR 是一个解析器 生成器,特别是ALL(*) 解析器。根据here,解析器是:
编译器中试图使句法意义的部分 源代码。
AFAIK 一个编译器应该由 5 个阶段组成:
- 词法分析
- 语法分析
- 语义分析
- IL 表示和优化
- 代码生成
所以 ANTLR 似乎只涵盖了 1 和 2。
因此,如果我想为一种针对 JVM 上的 Java 字节码的教育语言编写编译器。对于第 3-5 阶段,我还可以利用哪些其他工具?
添加 1
为什么 ANTLR 只覆盖 1 和 2?我猜 4 和 5 被跳过了,因为它们对目标平台来说太具体了。但是为什么ANTLR会跳过3呢?
【问题讨论】:
-
对于代码生成,您可能会发现asm.ow2.org 库很有用
-
这个问题应该在Software Recommendations SE问。
-
我倾向于同意您的问题更多地是主观的而不是客观的,值得一票。但是,如果您在十多年前就开始学习解析器、编译器等,如果不在这里,那么您应该去哪里,从而得到答案。
标签: compiler-construction antlr formal-languages ll