Question

Est-il possible de compiler plusieurs langues ensemble afin d'obtenir le meilleur des différentes langues.

Était-ce utile?

La solution

C'est vraiment possible de lien eux ensemble (s'ils sont appropriés convenablement) après les avoir compilés séparément, si les compilateurs et les liens sont tous compatibles. Par exemple:

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

Cela compile un fichier FORTRAN, puis un fichier C, puis les relie dans un seul exécutable nommé together (En supposant qu'ils s'appellent correctement ;-) en utilisant la suite GCC d'outils.

Le .NET de Microsoft est un moyen populaire d'utiliser plusieurs langues ensemble - C #, F #, Ironpython, IronRuby, etc. Visual Studio gérera les compilations en codes compatibles et la réception dans les assemblages, mais vous pouvez également le faire "à la main" si vous le souhaitez.

Si par «compilation ensemble», vous voulez dire avoir plusieurs langues différentes dans le même fichier, c'est également possible mais plus rare - par exemple, certains compilateurs C ont des extensions pour vous permettre d'exprimer le langage d'assemblage «en ligne» dans le même fichier.

Autres conseils

Oui, c'est possible, mais beaucoup dépend des langues spécifiques. Par exemple, appeler des fonctions C ou C ++ de Python se fait régulièrement.

Il est vraiment difficile de gérer proprement les jumeaux Algol-68 dans C. doable, mais je ne pense pas que je voudrais le faire tous les jours,

La plate-forme .NET est multilingue. Le perroquet est idéal pour mélanger Perl, Python, Ruby. Qu'essayez-vous de faire?

Un autre bon exemple de combinaison de langage est la plate-forme Java. Vous pouvez entremêler Groovy, Jython, Jruby, Scala, Clojure et d'autres langues avec Java. Les différentes langues nécessitent différents compilateurs, mais vous pouvez généralement appeler d'une langue à une autre. Groovy et Scala sont particulièrement bien adaptés à l'interopération.

Oh, et l'interface native Java (JNI) vous permet d'appeler C, C ++, l'assemblage et d'autres langues de Java.

(La plate-forme .NET partage ces mêmes attributs, comme d'autres affiches l'ont noté.)

Si vous utilisez .NET, vous pouvez compiler vos projets dans différentes langues à NetModules, puis les lier à une seule DLL / EXE. Visual Studio ne prend pas en charge cela, mais MSBuild le fait. Le moyen le plus simple d'obtenir une compilation est de modifier une copie de votre fichier .csproj et de modifier le type de sortie en "module" et d'exécuter simplement msbuild contre lui. Utilisez ensuite la commande "link" pour lier vos modules dans votre Final EXE / DLL.

Jeter un coup d'œil à Lampée. Il enveloppe votre C/C++ code afin que vous puissiez l'appeler à partir de pratiquement n'importe quelle autre langue.

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