我基本上想创建自己的语言。但是,我不想将高级语言编译成低级语言,而只是想将我的语言翻译成另一种高级语言。
我先看了Learning to write a compiler,但似乎那些教程假设您要为汇编程序编译高级语言,但我只是想将一种语言翻译成另一种语言。
因为我也知道Haskell,我看了Scheme in 48hours,但似乎这更像是用Haskell编写的方案解释器。
我搜索了一下,发现Source To Source compiler,但我不想添加任何语言功能,我只想更改语法。
如果我想将一种语言翻译成另一种语言,我会从哪里开始 一?
每个编译器教程是否对我想要的任务有帮助 解决?
是否有可以帮助我的工具?
答案 0 :(得分:4)
编译成高级语言与编译成低级语言没有任何不同。
最好由chain of small transforms完成:你有源语言AST,目标语言AST,你可以在它们之间建立一些略有不同的中间语言,慢慢地将一种语言变成另一种语言。
compiling Scheme to C有一个很好的教程。
但请注意,将高级语言翻译成另一种高级语言的惯用代码非常困难。您生成的代码,无论它的“高级”如何,都不会非常易读。