将高级语言翻译成另一种高级语言

时间:2013-12-30 16:31:40

标签: compiler-construction language-agnostic programming-languages

我基本上想创建自己的语言。但是,我不想将高级语言编译成低级语言,而只是想将我的语言翻译成另一种高级语言。

我先看了Learning to write a compiler,但似乎那些教程假设您要为汇编程序编译高级语言,但我只是想将一种语言翻译成另一种语言。

因为我也知道Haskell,我看了Scheme in 48hours,但似乎这更像是用Haskell编写的方案解释器。

我搜索了一下,发现Source To Source compiler,但我不想添加任何语言功能,我只想更改语法。

  1. 如果我想将一种语言翻译成另一种语言,我会从哪里开始 一?

  2. 每个编译器教程是否对我想要的任务有帮助     解决?

  3. 是否有可以帮助我的工具?

  4. 这是ANTLR旨在解决的任务吗?

1 个答案:

答案 0 :(得分:4)

编译成高级语言与编译成低级语言没有任何不同。

最好由chain of small transforms完成:你有源语言AST,目标语言AST,你可以在它们之间建立一些略有不同的中间语言,慢慢地将一种语言变成另一种语言。

compiling Scheme to C有一个很好的教程。

但请注意,将高级语言翻译成另一种高级语言的惯用代码非常困难。您生成的代码,无论它的“高级”如何,都不会非常易读。