有没有办法在 JVM 上运行纯 c 代码?
不通过 JNI 连接,运行,就像你可以通过 JRuby 运行 ruby 代码,或者通过 Rhino 运行 javascript。
如果没有当前的解决方案,您建议我应该怎么做?
显然,我想使用尽可能多的部分解决方案来实现它。
ANTLR 似乎是一个很好的起点,拥有完整的“ANSI C”语法实现......
我应该使用 ANTLR 生成的代码在 JVM 上构建一个“玩具”虚拟机吗?
有没有办法在 JVM 上运行纯 c 代码?
不通过 JNI 连接,运行,就像你可以通过 JRuby 运行 ruby 代码,或者通过 Rhino 运行 javascript。
如果没有当前的解决方案,您建议我应该怎么做?
显然,我想使用尽可能多的部分解决方案来实现它。
ANTLR 似乎是一个很好的起点,拥有完整的“ANSI C”语法实现......
我应该使用 ANTLR 生成的代码在 JVM 上构建一个“玩具”虚拟机吗?
看来LLJVM也能满足你的要求。
LLJVM:源代码首先由 llvm-gcc 或 clang 等前端编译为 LLVM 中间表示 (IR)。然后将 LLVM IR 转换为 Jasmin 汇编代码,链接到其他 Java 类,然后汇编为 JVM 字节码。
截至 2016 年,有一个年轻但有前途的选项,称为gcc-bridge。它的目的是利用 JVM 的 R 实现。目标是使用用 C 或 Fortran 编写的 R 库。但是 gcc-bridge 可以作为常规的 maven 插件独立使用。另请参阅gcc-brigde-example。