【问题标题】:Open source virtual machine开源虚拟机
【发布时间】:2011-04-01 16:13:05
【问题描述】:

我正在寻找一个开源虚拟机:

  • 快速尽可能轻量级
  • 支持最小的字节码集(如 LLVM IR)
  • 可轻松嵌入 C++ 应用程序
  • 跨平台(Linux、Windows 和 OS X)
  • x86 支持

【问题讨论】:

  • 嗯,没有人曾经要求一个缓慢、繁重和闭源的解决方案。为什么不直接使用 Java JVM?

标签: c++ garbage-collection jit vm-implementation


【解决方案1】:

其他可能的答案:为什么不输出汇编程序呢?它既快速又轻巧,而且您根本不需要虚拟机。由于您仅针对 x86,因此它可能有意义,具体取决于您要执行的操作。

【讨论】:

    【解决方案2】:

    为什么要过滤掉 LLVM ?我是a set of C libraries

    我想它不像 Lua 那样容易嵌入,但 LLVM 非常棒,它可能会克服集成它的麻烦。见this SO question,有帮助吗?

    【讨论】:

      【解决方案3】:

      NekoVM 是一种编程语言和轻量级虚拟机,旨在作为编译器编写者的通用目标。 The documentation 让在 C 或 C++ 应用程序中嵌入 VM 看起来非常容易,但似乎还没有记录 VM API。

      【讨论】:

        【解决方案4】:

        Lua 以非常容易嵌入 C/C++ 而闻名。它的 VM 是开源和跨平台的,非常小(exe 大小和字节码指令集),同时速度非常快。但它的字节码可能不适合您的语言。 The bytecode format is documented here.

        【讨论】:

        • Lua 的 VM 不是通用 VM,但如果您的语言和 Lua 在语义上相距不远,它可能适用于您的自定义语言。 Lua 的 VM 的简短描述位于 lua.org/source/5.1/lopcodes.h.html#OP_MOVE 。如果你这样走,我建议你先尝试将你的语言编译成 Lua 源代码。
        猜你喜欢
        • 1970-01-01
        • 2020-03-19
        • 2017-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-24
        • 2014-01-31
        相关资源
        最近更新 更多