【问题标题】:JIT compiler - how to start write own compiler? [duplicate]JIT 编译器 - 如何开始编写自己的编译器? [复制]
【发布时间】:2012-06-05 00:44:01
【问题描述】:

我想为 CIL 编写自己的 JIT 编译器,我不想使用库来生成编译器。您有任何教程、电子书或示例吗?

【问题讨论】:

  • MSIL 操作码在 MSDN 上有很好的文档记录 - 只需阅读所有这些并找出一种方法将其翻译成汇编,将其翻译成另一种可以编译的语言,或者只是解释它在飞行中!不过,您将需要编写一个垃圾收集器。

标签: jit cil


【解决方案1】:

来吧,this 应该是一个不错的资源。

其中一些是特定于 ruby​​ 的,但也有很多不是。

【讨论】:

  • 其中许多根本不适用于这里,或者只是有形相关。这个问题是关于为一种随意的编程语言编写编译器——这意味着解析源代码、处理诸如优先级、杂耍 AST 之类的事情,最后创建一些代码,很可能是字节码,甚至是高级语言——也许 i> 汇编代码。用于 CIL 的 JIT 编译器将有一个非常简单的前端,但需要大量工作来编码机器指令、为它们管理内存、说服操作系统执行它、替换已经编译的代码等。
  • 就像我说的,不是所有的都适用,但有不少会适用。尤其是《龙书》——我自己没有读过,但我听说过它的好消息。
  • 还有其他几个也有帮助的——编译器基础知识、编译器构造、编译器设计和构造、想要编写编译器吗?等等。所有这些都应该有所帮助
  • 是的,这还不错 - 我没有投反对票是有原因的。但我不认为它是完美的选择,因为优化相对较低级别的字节码与将高级语言转换为例如 C 语言并不完全相同。
【解决方案2】:

您可以从Rotor 开始。代码库还附带一本免费书籍。

【讨论】:

    猜你喜欢
    • 2016-10-26
    • 2011-07-17
    • 2011-06-29
    • 2010-10-06
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    相关资源
    最近更新 更多