有没有办法在JVM上运行普通的c代码?
不通过JNI连接,运行,就像你可以通过JRuby运行ruby代码,或通过Rhino运行javascript。

如果目前没有解决方案,你会建议我做什么?
显然,我想尽可能多地使用部分解决方案来实现它。

ANTLR似乎是一个很好的起点,拥有一个完整的“ANSI C”。语法实现......
我应该建立一个“玩具”吗?使用ANTLR生成的代码在JVM上运行VM?

有帮助吗?

解决方案

更新2012-01-26:根据公司网站上的此页面该产品已被买断,不再可用。

这是生成JVM字节码的商业C编译器

其他提示

还有两种可能性,都是开源的:

JPC 在JVM中模拟整个x86 pc,并且能够运行DOS和Linux

NestedVM 为Java字节码提供二进制翻译。这是通过将GCC编译为MIPS二进制文件来完成的,然后将其转换为Java类文件。因此,用C,C ++,Fortran或GCC支持的任何其他语言编写的任何应用程序都可以在没有源更改的情况下以100%纯Java运行。

可能不完全符合您的要求,但商业选择是 http://www.axiomsol.com/

LLJVM 似乎也可以满足您的要求。

LLJVM:源代码首先由llvm-gcc或clang等前端编译为LLVM中间表示(IR)。然后将LLVM IR转换为Jasmin汇编代码,与其他Java类链接,然后汇编为JVM字节码。

截至2016年,有一个年轻但有前途的选择,名为 gcc-桥。它的目的是利用JVM的R实现。目标是使用用C或Fortran编写的R库。但是gcc-bridge可以作为常规的maven插件独立使用。另请参阅 gcc-brigde-example

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top