2010-04-04 9 views
9

Come indica il titolo, ci sono compilatori/interpreti bytecode C/C++? Sto scrivendo un'applicazione in un linguaggio interpretato che dipende da alcune librerie che sono completamente compilabili in modo incrociato (non ci sono flag speciali per indicare le modifiche al codice durante la compilazione per una determinata piattaforma) ma sono scritte in C e C++. Piuttosto che spedire libs n-platform-specifiche con ogni piattaforma, sarebbe bello spedire un set di librerie che sono interpretate da un interprete specifico per piattaforma.Qualsiasi compilatore/interprete bytecode non codec C/C++?

Possibile e/o disponibile?

EDIT1: Il linguaggio interpretato in questione è Python, sebbene io possa utilizzare anche Ruby.

+2

Quale lingua interpretata? Molti dei più popolari hanno modi portatili per aggiungere estensioni C (e forse C++). –

+1

'llvm-gcc' e' clang' esistono all'interno di LLVM per questo lavoro, penso. –

+0

Il linguaggio è python, sebbene io possa usare anche Ruby. Posso usare entrambi o l'uno o l'altro, tutto quello che ho un diagramma quindi non ho ancora iniziato davvero. – Matt

risposta

3

Quale lingua interpretata stai utilizzando? Se ha un'implementazione basata su .NET (ad es. IronPython), è possibile utilizzarla con il compilatore C++/CLI per produrre codice byte per .NET CLR e Mono.

Questo è probabile che sia fattibile se si ha il pieno controllo sulle librerie C++.

+0

Onestamente non avevo pensato di farlo – Matt

+0

Usare Mono potrebbe non essere il modo più stabile per ottenere questo risultato. Soprattutto per Python, che ha già modi portatili per distribuire le estensioni C. –

+0

Utilizzando l'approccio standard, il codice Python è portatile, ma le librerie C/C++ devono essere ricompilate per ogni piattaforma.L'approccio standard potrebbe avere vantaggi rispetto al CLR/Approccio mono, ma non soddisfa la "nave di una serie di librerie" che sono interpretati da un interprete specifico per piattaforma "requisito per le librerie C/C++. – richj

1

Se non si è sicuri dell'utilizzo di .NET VM/CLR, è possibile provare Java VM con LLJVM (tramite llvm-gcc) e con Jython o JRuby.