当前位置:  开发笔记 > 编程语言 > 正文

制作语言需要一个好的后端

如何解决《制作语言需要一个好的后端》经验,为你挑选了2个好方法。

我想制作一种编译语言.我目前正在评估后端.到目前为止,我正在研究C,因为它的执行速度,编译速度以及一个名为TCC的小型易用编译器.

在阅读了有关将其用作中间语言的讨论后,我试图思考如何使其与垃圾收集兼容并处理异常.到目前为止,我认为我可以解决这两个问题,但开销很大.

以下是我对其他可能后端的一些看法:

    大会:不可移植,并且总是痛苦地编程.

    .NET:感觉真的很慢.启动时间为5秒,在Ironpython和Boo上评估1 + 2时为5秒.没有大型库无法运行.

    JVM:感觉有点慢.无法访问二进制库.没有大型库无法运行.

    LLVM:没有Windows支持.我听说编译后的可执行文件大小为16 mb +

    C--:看起来不发达.

    C++:可能.找不到一个我可以捆绑的漂亮的小免费.

您是否可以改变主意或有更多内容添加到此列表中?

编辑

我最近一直在试验LLVM.我发现他们有预编译的二进制文件,并且可以编译为本机程序集.

http://www.antlr.org/wiki/display/CS652/Generating+machine+executable+binaries+with+LLVM

以下是步骤:

    运行llvm-as LLVM Assembly,生成LLVM字节码文件.

    在LLVM字节码文件上运行llc以生成程序集文件.

    在程序集文件上运行汇编程序以生成目标文件.(或运行llvm-ld,这似乎依赖于外部安装的c编译器)

    用gcc等编译成可执行文件

小智.. 6

在这种情况下,LLVM可能是更好的选择.

LLVM具有Windows支持,编译只需要一些时间



1> 小智..:

在这种情况下,LLVM可能是更好的选择.

LLVM具有Windows支持,编译只需要一些时间



2> Konrad Rudol..:

你有没有考虑为海湾合作委员会写一个前端?我只是为了完整性而提到这一点 - 据我所知,后端界面非常复杂,而且代码库非常庞大且难以理解.

另一方面,GCC是一个成熟的产品,许多专业程序员正在研究它.至少,它可能为所有替代方案提供了最坚实的基础.

就个人而言,我更喜欢LLVM(激动人心的架构)或.NET的IL:非常,非常容易使用,有很棒的工具支持(Reflector,Cecil,Reflexil以及最后但并非最不重要的,.NET反射API)和两个非常有效的实现(即微软的规范实施和Mono).

但我无法在任何架构中声称拥有专业知识,所以请尽量回答这个问题.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有