有没有办法在JVM之上运行纯C代码?
不通过JNI连接,运行,就像你可以通过JRuby运行Ruby代码,或通过Rhino运行JavaScript。在JVM之上运行/解释C?
如果没有当前的解决方案,您会推荐我应该做什么?
显然我想尽可能多地使用部分解决方案来实现它。
ANTLR似乎是一个很好的开始,有一个完整的“ANSI C”语法实现......
我应该使用ANTLR生成的代码在JVM上构建一个“玩具”VM吗?
有没有办法在JVM之上运行纯C代码?
不通过JNI连接,运行,就像你可以通过JRuby运行Ruby代码,或通过Rhino运行JavaScript。在JVM之上运行/解释C?
如果没有当前的解决方案,您会推荐我应该做什么?
显然我想尽可能多地使用部分解决方案来实现它。
ANTLR似乎是一个很好的开始,有一个完整的“ANSI C”语法实现......
我应该使用ANTLR生成的代码在JVM上构建一个“玩具”VM吗?
更新2012-01-26:根据this page on the company's site该产品已被买断,而不再可用。
是的。
也许不是你所需要的东西,但一个商业选项http://www.axiomsol.com/
看来LLJVM也可以满足您的要求。
LLJVM:源代码首先通过前端(如llvm-gcc或clang)编译为LLVM中间表示(IR)。然后将LLVM IR转换为Jasmin汇编代码,与其他Java类相链接,然后汇编成JVM字节码。
截至2016年,有一个年轻但很有前途的选项叫做gcc-bridge。其目的是利用JVM R实现来使用用C或Fortran编写的R-libaries。但gcc-bridge也可以作为maven插件独立使用。
这很有趣..试图制作一些* portable * c代码? – 2009-01-07 20:41:13
尝试通过共同点(JVM)交互不同的代码(来自不同语言) – amitkaz 2009-01-07 21:05:48
从查看JVM规范开始已经很长时间了,但是IIRC试图防止数据类型转换过快和松散。如果情况仍然如此,那么您将无法在JVM上运行C程序。 – 2009-01-07 22:10:45