Pregunta

¿Es posible compilar múltiples idiomas juntos para obtener lo mejor de los diferentes idiomas?

¿Fue útil?

Solución

Definitivamente es posible Enlace ellos juntos (si se programan adecuadamente) después de compilarlos por separado, si los compiladores y los enlazadores son compatibles. Por ejemplo:

g77 -c one.f
gcc -c two.c
gcc -o together one.o two.o

Esto compila un archivo fortran, luego un archivo C, luego los enlaza en un solo ejecutable nombrado together (suponiendo que se llamen correctamente ;-) Usando el conjunto de herramientas GCC.

Microsoft's .NET es una forma popular de usar múltiples idiomas juntos: C#, F#, Ironpython, Ironruby, etc. Visual Studio manejará las compilaciones en códigos compatibles y la unión en asambleas, pero también puede hacerlo "a mano" si lo desea.

Si al "compilar juntos" se refiere a tener múltiples idiomas diferentes dentro del mismo archivo, eso también es posible pero más raro, por ejemplo, algunos compiladores C tienen extensiones para permitirle expresar un lenguaje de ensamblaje "en línea" dentro del mismo archivo.

Otros consejos

Sí, es posible, pero mucho depende de los idiomas específicos. Por ejemplo, llamar a funciones C o clases C ++ de Python se realiza de manera rutinaria.

Es realmente difícil manejar limpiamente Algol-68 Thunks en C. Do -able, pero no creo que quiera hacerlo todos los días,

La plataforma .NET es multilingüe. El loro es ideal para mezclar Perl, Python, Ruby. ¿Que estás tratando de hacer?

Otro buen ejemplo de combinación de lenguaje es la plataforma Java. Puedes entremezclarse Groovy, Jython, Jruby, Scala, Clojure y otros idiomas con Java. Los diferentes idiomas requieren diferentes compiladores, pero generalmente puede llamar de un idioma a otro. Groovy y Scala son particularmente adecuados para la interoperación.

Ah, y la interfaz nativa de Java (JNI) le permite llamar a C, C ++, ensamblaje y otros idiomas de Java.

(La plataforma .NET comparte estos mismos atributos, como han notado otros carteles).

Si está utilizando .NET, puede compilar sus proyectos en diferentes idiomas a NetModules y luego vincularlos en una sola DLL/EXE. Visual Studio no es compatible con esto, pero MSBuild lo hace. La forma más fácil de obtener una compilación es editar una copia de su archivo .csproj y cambiar el tipo de salida a "módulo" y simplemente ejecutar msbuild contra él. Luego use el comando "enlace" para vincular sus módulos con su exe/dll final.

Echa un vistazo a Trago. Envuelve tu C/C++ Código para que pueda llamarlo desde prácticamente cualquier otro idioma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top