使用Python构建编译器或解释器

时间:2010-07-30 17:10:22

标签: java python compiler-construction programming-languages interpreter

现在我正在撰写我的博士论文,为Java的新规范语言构建语言处理器(参见JML,或者说##为C#),需要确定一个实现工具来开始开发。语言的研究方面(语法,语义,理论结果)与我的实现选择是正交的,所以我想使用Python(2.6+)是出于我自己的原因。最终产品将 一个编译器或解释器,能够验证用Java编写的程序的某些指定属性。

在Python中构建编译器/解释器的最佳框架/库是什么?这个问题是否包含“电池”?

为具有Java 6 +参考编译器的解决方案授予奖励积分。

3 个答案:

答案 0 :(得分:7)

我个人不能忍受antlr,我使用lex / yacc作为我的解析器生成器。这是您可以使用的Python实现http://www.dabeaz.com/ply/

这只是处理解析,但实际上甚至没有开始构建你的解释器。为此,你可能会从头开始构建它 - 我从来没有听说过专门针对它的图书馆(我很高兴看到其中的一些,如果你知道任何一个,请在评论中链接我)。

查看此SO帖子how to start writing a very simple programming language它有很好的主意。

答案 1 :(得分:1)

也许你想看看this

答案 2 :(得分:0)

我可以建议antlr使用它的python绑定吗?