java - 我如何解析代码以在 Java 中构建编译器?

标签 java parsing compiler-construction parser-generator

我需要编写一个编译器。这是大学的作业。老师告诉我们,我们可以使用任何我们想要的 API 来进行代码的解析,只要它是好的 API 即可。这样我们就可以更多地关注我们将生成的 JVM。

是的,我将用 Java 编写一个编译器来生成 Java。

你知道有什么好的 API 吗?我应该使用正则表达式吗?我通常手动编写自己的解析器,但在这种情况下不建议这样做。

如有任何帮助,我们将不胜感激。

最佳答案

正则表达式很适合在编译器中使用,但仅用于识别标记(即没有递归结构)。

编写编译器的经典方法是使用一个词法分析器来识别标记,一个语法分析器来识别结构,一个语义分析器为了识别意义,一个中间代码生成器,一个优化器,最后一个目标代码生成器。如果编译器更易于编写,则可以合并或完全跳过任何这些步骤。

已经开发了许多工具来帮助完成此过程。对于Java,你可以看看

关于java - 我如何解析代码以在 Java 中构建编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/672577/

相关文章:

java - AngularJS http POST 到 Servlet

java - 扫描端口并列出每个端口上运行的服务

regex - Powershell3:识别并显示ascii文件中的最后n行

c++ - 使用 stringstream 和 if-else 语句时的字符串输入错误

c++ - 了解 C++ 编译器

java - 向 Java 类添加编程注释

c# - 需要在命令行上 msbuild 低版本的 C# 项目,没有 Visual Studio

java - 如何组合多个Comparator?

java - 与垃圾收集语言一起使用时,哪种代码的 CPU/内存效率更高?

c++ - 按行解析和排序 csv 文件