从新语言到C子集的源代码翻译器

时间:2012-01-20 02:45:50

标签: java compiler-construction

我正在开发一个新语言实现的项目。我被分配了为该语言构建翻译器的任务。翻译器应该用Java构建,翻译输出应该将新语言的子集生成为C.我对此几乎没有问题: 1.如何处理? 2.我应该更多地强调哪个阶段?它应该是编译器的代码生成器阶段吗? 3.我是否需要为目标语言增加一个语法?

提前感谢。

1 个答案:

答案 0 :(得分:2)

我会调查ANTLR,如果你还没有意识到它。来自http://www.antlr.org/about.html(强调我的):

  

ANTLR,另一种语言识别工具,是一种语言工具   提供了构建识别器,编译器和   翻译中包含语法描述的翻译   各种目标语言。 ANTLR自动化构建   语言识别器。从正式语法中,ANTLR生成一个程序   确定句子是否符合该语言。 其他   这是一个编写其他程序的程序。通过添加代码   对语法的片段,识别器成为翻译或   解释器。 ANTLR为中间形式提供了出色的支持   树木建筑,树木行走,翻译和提供   复杂的自动错误恢复和报告。

作为一个额外的好处,ANTLR是用Java编写的,可以轻松调用。

有关其他详细信息,请访问http://en.wikipedia.org/wiki/ANTLR