用作我的编译器的后端?

我想为自己的编程语言编写一个编译器。流行的后端选择似乎是C,Java,LLVM,JVM字节码,.Net字节码,gcc,汇编...在这里,我正在考虑将Go用作后端的可能性

Go显然是一种快速的语言,具有垃圾回收和快速的编译时间。它也是便携式且免费的(BSD样式的许可证)。我认为,所有这些都将使Go成为代码生成目标的一个不错的选择,甚至可能比其他选择更好。

Go将是代码生成的一个不错的选择吗?您能指出现有的项目吗,或解释为什么没有项目?甚至更好的是,您是否有使用Go语言作为后端的经验?我没有意识到任何不利之处吗?

(我对转到此处特别感兴趣。不仅要指向其他后端选项,还已经有一些问题可以回答。)


撒科打诨
浏览 190回答 3
3回答

HUWWW

我不知道有任何使用Go作为后端的语言项目。Go并非设计为编译器后端或IR。围棋是低级别不够(有点像C除了如GC)国际海事组织能用作后端的一些语言/类的语言有类似的语义/堪比/关闭到什么Go提供。很想了解您正在设计的语言;-)

慕码人8056858

有一个名为GoGo的项目,该项目被描述为用Go编写的编译器,并为Go的子集进行汇编。基本上就像Go的精简版。我认为您可以先对其进行修改以解析您自己的语言。我还记得Go带有自己的编译器的类似脚本语言的子集。我以为它叫GoScript,但似乎至少有3个不同的项目具有相同的名称,所以我找不到它。我会说并分享您的经验。Go而不是后端,它将成为您的中间语言。至少那是我想您要做的。

神不在的星期二

如果您将Go用作语言的后端,那么您的语言将与Go非常相似。您将能够实施例行公事前往频道GC你不会有线程数Go是非常好的语言。我看不到可以添加什么以使语言比Go更好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go