什么是简单易用的 JIT 库?
What would be a simple to use JIT library?
我正在尝试编写类似于 .NET 或 JVM 的语言运行时(以及语言本身)。它有一种自定义的字节码形式。
我想要的是一种将所述字节码转换为实际的、可运行的机器代码的方法。所以,因为我不想自己写这样一个翻译器(这更像是一个玩具 project/personal 副项目)我想找到一个好的 JIT 库来使用。
这是我希望图书馆执行的操作:
- 图书馆应该尽可能易于使用(玩具项目,我在这里真的没有太多经验)
- 该库应至少支持 x86_64(开发机器),但最好也应涵盖其他架构
- 库应该最好做一些低级优化(寄存器跟踪和分配,减少内存访问等);不过,这些优化的成本应该不会很高(例如,我自己会进行其他优化,例如删除虚拟调用并将它们转换为直接调用)。如果它最容易使用,我可以接受没有优化的库。
- 该库必须具有可从 C(首选)或 C++(可接受)使用的接口。
如果重要的话,我将使用 Boehm GC 进行垃圾收集(可能不重要,但以防万一)。也许压缩 GC 会很好,但我想我不应该把这些问题结合起来......
我建议 llvm. There are some great tutorials on how to implement your own language with it and basic stuff is not too complicated. You also get the option to do a lot of more advanced stuff later on. As a bonus not only can you use JIT but you can also statically compile and optimize your binaries. LLVM also does have a C interface 并且可以针对所有常见的 CPU 架构,甚至还有很多更晦涩的架构。
我正在尝试编写类似于 .NET 或 JVM 的语言运行时(以及语言本身)。它有一种自定义的字节码形式。
我想要的是一种将所述字节码转换为实际的、可运行的机器代码的方法。所以,因为我不想自己写这样一个翻译器(这更像是一个玩具 project/personal 副项目)我想找到一个好的 JIT 库来使用。
这是我希望图书馆执行的操作:
- 图书馆应该尽可能易于使用(玩具项目,我在这里真的没有太多经验)
- 该库应至少支持 x86_64(开发机器),但最好也应涵盖其他架构
- 库应该最好做一些低级优化(寄存器跟踪和分配,减少内存访问等);不过,这些优化的成本应该不会很高(例如,我自己会进行其他优化,例如删除虚拟调用并将它们转换为直接调用)。如果它最容易使用,我可以接受没有优化的库。
- 该库必须具有可从 C(首选)或 C++(可接受)使用的接口。
如果重要的话,我将使用 Boehm GC 进行垃圾收集(可能不重要,但以防万一)。也许压缩 GC 会很好,但我想我不应该把这些问题结合起来......
我建议 llvm. There are some great tutorials on how to implement your own language with it and basic stuff is not too complicated. You also get the option to do a lot of more advanced stuff later on. As a bonus not only can you use JIT but you can also statically compile and optimize your binaries. LLVM also does have a C interface 并且可以针对所有常见的 CPU 架构,甚至还有很多更晦涩的架构。