c - 现在有哪些免费的 JIT 编译器,哪个更容易使用?

标签 c jit

<分区>

我将开始为一种小型语言编写一个 JIT/解释器,并希望使用当今可用的一些免费 JIT 工具/库。我有哪些选择(我只知道 libjit、LLVM 和 GNU lightning),哪个更容易使用(但不会太慢)?

要求是:

  • 编译时间重要
  • 执行时间很重要,但只要使用 JIT 编译器不太难
  • 易用性很重要
  • 无需垃圾回收。
  • 实际上,不需要运行时环境(我真的只想要 JIT:编译到内存区域,然后获取指针并开始执行生成的代码)
  • 开发将使用普通标准 C(无 C++,无平台特定功能)和 pthreads 完成。

最佳答案

具有良好执行时间的普通标准 C?你一定在找LuaJIT (实际上是后端的 dynasm,但它仍然是 LuaJIT 的一部分),它是一个跟踪 JIT 编译器(其中提到的大多数都是静态的)。它确实有垃圾收集功能,但可以很容易地取出或修改(很快就会有计划的大修),并且它有一个本地 FFI,所以它可以很容易地进行外部绑定(bind)(从 C 级别,所以你不需要不必总是深入细节)。

最好的部分是它的完全公共(public)域代码,并且代码是文档(结构良好,很好)。

关于c - 现在有哪些免费的 JIT 编译器,哪个更容易使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536322/

相关文章:

ios - 命令行 C 程序到 Swift

xamarin.ios - iOS App Store ExecutionEngineException尝试JIT编译

c - 如何避免大量写入损坏SD卡?

java - 如何在没有 "0x00007fffe0dde513 in ?? ()"的情况下生成有效的 JDK9 调试版本?

java - JIT如何调度字节码的执行?

c# - .NET JIT 编译器可变优化

c# - 方法是否使用? : Operator Inlined during JIT compilation?

python - 从 numba 创建一个由 njit 装饰的 numpy 数组

c - 为什么函数在没有指定返回类型的情况下有返回值?

c++ - poll返回0但read不阻塞