【发布时间】:2021-09-14 13:44:45
【问题描述】:
我正在尝试编写类似于 .NET 或 JVM 的语言运行时(和语言本身)。它有一种自定义形式的字节码。
我想要的是一种将所述字节码转换为实际可运行机器码的方法。所以,因为我不想自己写这样的翻译器(这更像是一个玩具项目/个人项目)我想找到一个好的 JIT 库来使用。
这是我希望图书馆做的事情:
- 该库应尽可能易于使用(玩具项目,我在这里没有太多经验)
- 该库应至少支持 x86_64(开发机器),但最好也应涵盖其他架构
- 库最好进行一些低级优化(寄存器跟踪和分配、减少内存访问等);不过,这些优化不应该非常昂贵(例如,我将自己进行其他优化,例如删除虚拟调用并将它们转换为直接调用)。如果它最容易使用,我可以接受没有优化的库。
- 库必须具有可用于 C(首选)或 C++(可接受)的接口。
如果重要的话,我将使用 Boehm GC 进行垃圾收集(可能不重要,但以防万一)。也许压缩 GC 会很好,但我想我不应该把这些问题结合起来......
【问题讨论】: