Question

Existe-t-il un moyen d'exécuter du code en clair sur la JVM?
Ne vous connectez pas via JNI, exécutez-vous, comme vous pouvez utiliser du code ruby ??via JRuby ou javascript via Rhino.

S'il n'y a pas de solution actuelle, que recommanderiez-vous que je fasse?
Évidemment, je veux utiliser autant de solutions partielles que possible pour y arriver.

ANTLR semble être un bon endroit pour commencer, avec un "ANSI C" complet mise en œuvre de la grammaire ...
devrais-je construire un "jouet"? Une machine virtuelle sur la machine virtuelle utilisant le code généré par ANTLR?

Était-ce utile?

La solution

Mise à jour le 26/01/2012: Selon cette page sur le site de la société le produit a été acheté et n'est plus disponible.

Oui.

Voici un compilateur C commercial produisant du code de temps JVM .

Autres conseils

Il existe deux autres possibilités, toutes deux open-source:

JPC émule un PC x86 entier dans la machine virtuelle et est capable d'exécuter à la fois DOS et Linux. .

NestedVM fournit une traduction binaire pour le Bytecode Java. Ceci est fait en compilant GCC en un binaire MIPS qui est ensuite traduit en fichier de classe Java. Ainsi, toute application écrite en C, C ++, Fortran ou tout autre langage pris en charge par GCC peut être exécutée en Java pur à 100% sans modification de la source.

Peut-être pas exactement ce dont vous avez besoin, mais une option commerciale est http://www.axiomsol.com/

Il semble que la LLJVM puisse également répondre à vos besoins.

LLJVM: Le code source est d'abord compilé en représentation LLVM intermédiaire (IR) par une interface telle que llvm-gcc ou clang. LLVM IR est ensuite traduit en code d'assemblage Jasmin, lié à d'autres classes Java, puis assemblé en bytecode JVM.

À partir de 2016, une option jeune mais prometteuse appelée gcc- pont . Son objectif est de tirer parti de la mise en œuvre de R. par la JVM. L'objectif est d'utiliser des bibliothèques R écrites en C ou en Fortran. Mais gcc-bridge peut être utilisé indépendamment en tant que plugin standard maven. Voir également le exemple gcc-brigde .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top