2

我想用 Java 编写一个 Java 解释器,目的是为该语言添加一些其他功能。

我想知道是否已经存在一些使用 javacc 用 Ja​​va 编写的 Java 解释器。那会很酷。

我已经在javacc网站上下载了java 1.5语法和Abstract Syntax Tree(AST),但是问题是AST是刚建好的,还没有填。事实上它什么也没做。

你知道任何用 javacc 编写的开源 Java 解释器吗?

谢谢,

洛伊克

4

1 回答 1

3

你知道任何用 javacc 编写的开源 Java 解释器吗?

简短的回答是不,我不知道。

我花了几分钟谷歌搜索,找不到任何相关的东西。但是,也有使用 JavaCC 用 Ja​​va 编写的其他语言的解释器示例。我还看到了对 Compiler Construction 课程的引用,该课程已经(已经)为“microJava”语言编写了解释器作为家庭作业。

但是想想看。为什么有人会努力用 Java 为 Java 编写编译器/解释器?构建现有工具链已经完成的东西需要做很多工作。甚至更多的努力使它可供其他人使用。这可能解释了为什么你找不到一个。

我建议您从 OpenJDK 代码库开始进行实验……或者通过实现生成字节码或 Java 源代码的编译器。


Dave Newton 提到的 Polyglot 系统(在上面的评论中)是一个用于进行 Java 语言扩展的框架,最终生成常规的 Java 源代码。这很有趣,但我看不出它在这里会有什么帮助。

于 2012-06-03T03:22:40.993 回答