我想为自己的编程语言编写一个编译器。流行的后端选择似乎是C,Java,LLVM,JVM字节码,.Net字节码,gcc,汇编......在这里,我正在考虑 Go作为后端的可能性。
Go显然是一种快速语言,具有垃圾收集和快速编译时间。它也是便携式和免费的(BSD式许可证)。所有这些都会让Go成为代码生成的一个很好的选择,我想,甚至可能比其他选项更好......所以我很惊讶我找不到任何人这样做。
Go Go是代码生成的好选择吗?你能指出现有项目这样做,还是解释为什么没有?或者甚至更好,您是否有使用Go语言作为后端的经验?我不知道有什么缺点吗?
答案 0 :(得分:6)
答案 1 :(得分:0)
有this project名为GoGo,它被描述为用Go编写的编译器,用于Go的子集。基本上就像Go的精简版。我想你可以先修改它来解析你自己的语言。
我还记得Go的一个类似脚本语言的子集,它有自己的编译器。我认为它被称为GoScript,但似乎至少有3个不同的项目具有相同的名称,所以我无法找到它。
我会说这样做并分享你的经验。而不是后端,Go将成为你的中间语言。至少那是我认为你想做的事。
干杯!
答案 2 :(得分:-1)
如果您使用Go作为您的语言的后端,那么您的语言将与Go非常相似。
您将能够实施
你没有
Go是非常好的语言。我没有看到你可以添加什么来比Go更好的语言。