Frage

Ist es möglich, mehrere Sprachen zusammen zu kompilieren, um das Beste aus den verschiedenen Sprachen zu erhalten?

War es hilfreich?

Lösung

Es ist definitiv möglich Verknüpfung sie zusammen (falls programmiert) nach dem separaten Zusammenstellen, wenn die Compiler und Linker alle kompatibel sind. Zum Beispiel:

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

Dies erstellt eine FORTRAN -Datei, dann eine C -Datei, dann verknüpft sie in einer einzelnen ausführbaren Datei mit dem Namen together (Angenommen, sie rufen sich richtig an ;-) Mit der GCC-Suite von Werkzeugen.

Microsofts .NET ist eine beliebte Möglichkeit, mehrere Sprachen zusammen zu verwenden - C#, F#, Ironpython, IronRuby usw. Visual Studio behandelt die Kompilierungen in kompatible Codes und das Zusammenschließen in den Baugruppen, aber Sie können es auch "von Hand" tun, wenn Sie dies wünschen.

Wenn Sie durch "Zusammenstellen" meinen, dass sie in derselben Datei mehrere verschiedene Sprachen haben, ist dies auch möglich, aber seltener - beispielsweise haben einige C -Compiler Erweiterungen, mit denen Sie "Inline" -Anassagessprache in derselben Datei ausdrücken können.

Andere Tipps

Ja, es ist möglich, aber viel hängt von den spezifischen Sprachen ab. Beispielsweise erfolgt die Aufruf von C -Funktionen oder C ++ - Klassen von Python routinemäßig.

Es ist wirklich schwer, mit Algol-68-Thunks in C sauber umzugehen, aber ich glaube nicht, dass ich es jeden Tag tun möchte.

.NET-Plattform ist multisprachig. Papagei eignet sich hervorragend zum Mischen von Perl, Python, Ruby. Was versuchst du zu machen?

Ein weiteres gutes Beispiel für die Kombination von Sprache ist die Java -Plattform. Sie können Groovy, Jython, Jruby, Scala, Clojure und andere Sprachen mit Java intermixen. Die verschiedenen Sprachen erfordern unterschiedliche Compiler, aber Sie können im Allgemeinen von einer Sprache zur anderen aufrufen. Groovy und Scala eignen sich besonders gut für die Interoperation.

Oh, und mit der Java Native Interface (JNI) können Sie C, C ++, Assembly und andere Sprachen von Java aufrufen.

(Die .NET -Plattform teilt die gleichen Attribute, wie andere Poster festgestellt haben.)

Wenn Sie .NET verwenden, können Sie Ihre Projekte in verschiedenen Sprachen mit NetModules kompilieren und sie dann mit einer einzelnen DLL/EXE verknüpfen. Visual Studio unterstützt dies nicht, aber Msbuild tut es. Der einfachste Weg, um ein Kompilieren zu erhalten, besteht darin, eine Kopie Ihrer .csproj -Datei zu bearbeiten und den Ausgangstyp in "Modul" zu ändern und einfach MSBuild dagegen auszuführen. Verwenden Sie dann den Befehl "link", um Ihre Module mit Ihrem endgültigen EXE/DLL zu verknüpfen.

Sich ansehen Schluck. Es wickelt deine C/C++ Code, damit Sie es von praktisch jeder anderen Sprache aufrufen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top