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

需要一个后端编译器

如何解决《需要一个后端编译器》经验,为你挑选了3个好方法。

我创建了一个生成中间代码的编译器.我没有时间为我的项目编写后端.

有没有我可以用来评估生成的中间代码的软件?我在哪里可以下载这个软件?

输出看起来像这样:

    t1 = 0.67596e-7
    sum = t1

    t1 = 2
    t2 = 3
    t3 = t2 + t1
    i = t3

L0:
    t1 = sum
    t2 = 20
t3 = compare(t1 <= t2)
    t4 = sum
    t5 = 12
t6 = compare(t4 ~= t5)
t7 = t3 | t6
    t8 = sum
    t9 = 20
t10 = compare(t8 > t9)
t11 = t7 & t10
if t11 true then goto L1 else goto L2
L1: 
    t1 = 2
    t2 = sum
    t3 = t2 + t1
    sum = t3

    t1 = 1
    t2 = i
    t3 = t2 + t1
    i = t3
    goto L0
L2:

谢谢阅读.



1> Norman Ramse..:

代码生成是我的事:-)

评论几个选项:

CLR:

亲:工业支持

Con:你必须完全买入他们的打字系统; 根据你想要对类型做什么,这可能无关紧要

Con:只有Windows平台才是真正的黄金时段质量

LLVM:

专业:热情的用户社区与魅力领袖

亲:许多有趣的性能改进

Con:有点复杂的界面

Con:工程中的漏洞历史; 随着LLVM的成熟,期望通过增加接口的复杂性来堵塞工程中的漏洞

C -

Pro:target是一种实际的书面语言,而不是API; 您可以轻松地检查,调试和编辑C--代码

亲:设计相当成熟,相当干净

Pro:支持准确的垃圾收集

专业:大多数用户报告它很容易使用

Con:非常小的开发团队

Con:截至2009年初,仅支持三种硬件平台(x86,PPC,ARM)

Con:不附带垃圾收集器

Con:项目的未来不确定

C作为目标语言

亲:看起来很容易

骗局:几乎不可能获得不错的表现

Con:从长远来看会让你疯狂; 询问那些尝试使用这种技术编译Haskell,ML,Modula-3,Scheme等的人.在某些时候,这些人中的每一个都放弃并构建了自己的本机代码生成器.

总结:除C之外的任何事情都是合理的选择.为了实现灵活性,质量和预期寿命的最佳组合,我可能会推荐LLVM.但是你的示例代码非常接近C--,所以这可能是一个优势.

完全披露:我隶属于C--项目.



2> froh42..:

看看llvm编译器基础结构项目.它被用于许多现实世界的项目中.LLVM是一个低级虚拟机,易于创建代码并易于转换为本机代码.



3> 小智..:

你发出的代码看起来非常接近C - 没有你的编译器发出C并使用C编译器作为后端 - 这就是原始C++ cfront编译器的工作方式.

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