2010-04-04 11 views
9

Como indica el título, ¿hay compiladores/intérpretes de códigos de bytes C/C++? Estoy escribiendo una aplicación en un lenguaje interpretado que depende de ciertas bibliotecas que son completamente compilables (no hay indicadores especiales para indicar cambios de código durante la compilación para una plataforma determinada), pero están escritas en C y C++. En lugar de enviar n-platform-specific-libs con cada plataforma, sería bueno enviar un conjunto de libs que son interpretadas por un intérprete específico de plataforma.¿Algún C/C++ al compilador/intérprete de códigos de bytes no nativos?

Posible y/o disponible?

EDIT1: El lenguaje interpretado en cuestión es Python, aunque también puedo usar Ruby.

+2

¿Qué es el lenguaje interpretado? Muchos de los más populares tienen formas portátiles de agregar extensiones C (y tal vez C++). –

+1

'llvm-gcc' y' clang' existen dentro de LLVM para este trabajo, creo. –

+0

El lenguaje es Python, aunque también puedo usar Ruby. Puedo usar ambos, uno o el otro, todo lo que tengo es un diagrama, así que todavía no he empezado. – Matt

Respuesta

3

¿Qué idioma interpretado está utilizando? Si tiene una implementación basada en .NET (por ejemplo, IronPython), posiblemente podría usarla con el compilador C++/CLI para producir código de bytes para .NET CLR y Mono.

Esto solo es factible si tiene control total sobre sus librerías C++.

+0

Honestamente no había pensado en hacer eso. – Matt

+0

Usar Mono puede no ser la manera más estable de lograr esto. Especialmente para Python, que ya tiene formas portátiles de distribuir extensiones C. –

+0

Usando el enfoque estándar, el código Python es portable, pero las bibliotecas C/C++ deben ser recompiladas para cada plataforma. El enfoque estándar podría tener ventajas sobre el CLR/Enfoque mono, pero no cumple con el "envío de un conjunto de libs" que son interpretados por un requisito de "intérprete específico de plataforma" para las bibliotecas C/C++. – richj

1

Si no está seguro acerca de cómo utilizar el .NET VM/CLR, entonces se podría dar la máquina virtual de Java intentarlo con LLJVM (a través de llvm-gcc) y, o bien Jython o JRuby.

Cuestiones relacionadas