用java编写的java解释器

时间:2012-06-03 02:33:55

标签: java syntax tree interpreter javacc

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

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

我已经在javacc网站上下载了java 1.5语法和抽象语法树(AST),但问题是AST只是构建了,但没有填充。事实上它什么也没做。

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

谢谢,

卢瓦克

1 个答案:

答案 0 :(得分:3)

  

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

简短的回答是不,我没有。

我花了几分钟谷歌搜索,找不到任何相关的东西。但是,有一些使用JavaCC用Java编写的其他语言的解释器的例子。我还看到了编译器构建课程的参考资料,该课程已经编写了一个“microJava”语言的翻译作为家庭作业。

但请想一想。为什么有人会在Java中编写Java编译器/解释器?构建现有工具链已经完成的工作需要做很多工作。然后更加努力让其他人可以使用它。这可能解释了为什么你找不到一个。

我建议你从OpenJDK代码库开始做实验......或者实现一个生成字节码或Java源代码的编译器。


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