Domanda

Esiste un modo per eseguire il semplice codice c sopra JVM?
Non connettersi tramite JNI, in esecuzione, come è possibile eseguire il codice ruby ??tramite JRuby o javascript tramite Rhino.

Se non esiste una soluzione attuale, cosa consiglieresti di fare?
Ovviamente voglio usare quante più soluzioni parziali possibile per farlo accadere.

ANTLR sembra un buon punto di partenza, con un "ANSI C" pieno implementazione grammaticale ...
dovrei costruire un "giocattolo" VM su JVM utilizzando il codice generato ANTLR?

È stato utile?

Soluzione

Aggiornato il 26-01-2012: secondo questa pagina sul sito dell'azienda il prodotto è stato acquistato e non è più disponibile.

Sì.

Ecco un compilatore C commerciale che produce il bytecode JVM .

Altri suggerimenti

Esistono altre due possibilità, entrambe open-source:

JPC emula un intero PC x86 all'interno della JVM ed è in grado di eseguire sia DOS che Linux .

NestedVM fornisce una traduzione binaria per Bytecode Java. Questo viene fatto compilando GCC in un binario MIPS che viene poi tradotto in un file di classe Java. Quindi qualsiasi applicazione scritta in C, C ++, Fortran o qualsiasi altra lingua supportata da GCC può essere eseguita in Java puro al 100% senza modifiche all'origine.

Forse non esattamente ciò di cui hai bisogno, ma un'opzione commerciale è http://www.axiomsol.com/

Sembra che LLJVM può anche soddisfare le tue esigenze.

LLJVM: il codice sorgente viene prima compilato nella rappresentazione intermedia LLVM (IR) da un frontend come llvm-gcc o clang. LLVM IR viene quindi tradotto in codice assembly Jasmin, collegato ad altre classi Java e quindi assemblato in bytecode JVM.

A partire dal 2016 esiste un'opzione giovane ma promettente chiamata gcc- ponte . La sua intenzione è quella di sfruttare l'implementazione di R. di JVM. L'obiettivo è utilizzare le librerie R scritte in C o Fortran. Ma gcc-bridge può essere usato indipendentemente come un normale plugin maven. Vedi anche gcc-brigde-example .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top