Mehrere Programmiersprachen in einem Programm?

5 Antworten

Verschiedene Module des Programmes werden in verschiedenen Sprachen geschrieben und kommunizieren dann miteinander, oder übernehmen generell unterschiedliche Aufgaben.

Ferner kann ich hingehen und kann Code in einer Sprache X schreiben, daraus ausführbaren Code machen, der sich an bestimmte Konventionen hält und ein geeignetes Format besitzt. Das kann ich in diversen Sprachen machen.

Mein finales Programm einer anderen Sprachen greift dann auf den Code in diesen Objekten zurück und ich lasse alles vom Linker zusammenschnüren.

Wichtig dabei ist eben, daß es eine einheitliche Schnittstelle gibt, siehe Aufrufkonvention und ABI.

Am einfachsten wird es, wenn die Module in verschiedenen Sprachen jeweils als DSO (DLL) vorliegen, weil hier die dynamische Bindung beim starten durch das OS mit dessen Konventionen schon vieles vorschreibt.

Hallo,

Also ein Beispiel direkter Code Einbindung fällt mir aus den 80er Jahren auf Anhieb Turbo C ein, das Direkte 80x86 Assembler Code Einbindungen zuliess. Man schrieb einfach ASM shift rx; zeilenweise oder asm { eingebundener Assembler }end;

Dann gibt es ja APIs die in Hochsprachen eingebunden mit beliebigen Compilern geschrieben sein können und deren Routinen über einen genau definierten Dispatcher aufgerufen werden können.

Oder die DLLs.

Vielfältige Möglichkeiten erwarten einen Programmierer wenn er sich in die Materie einarbeitet.

LG

Harry

Im Prinzip kann man verschiedene Teile eines Programms in verschiedenen Sprachen schreiben und mit verschiedenen Compilern in Maschinencode (auch Objektcode genannt) übersetzen. Anschließend werden die Objektdateien (meist mit Dateiendung *.obj) zu einem Programm gebunden (gelinkt). Dazu müssen aber die Objektdateien miteinander kompatibel sein, und das hängt davon ab, welche Sprachen bzw. Compiler man verwendet.

Woher ich das weiß:Hobby

Ein einziges Programm kann immer nur in einer einzigen Programmiersprache geschrieben sein (es könnte sonst nicht kompilierbar sein).

Nun ist es aber so, dass Anwendungen schon auch aus einer ganzen Menge von Programmen bestehen können. Sofern sie einzeln compilierbar sein dürfen, können sie selbstverständlich auch in unterschiedlichen Programmiersprachen geschrieben sein. Solche Programme mit einander sprechen zu lassen könnte man (mindestens, wenn sie in C oder C++ geschrieben sind) Python verwenden.

Wichtig also: Ganze Anwendungen mit mit einzelnen Programmen zu verwechseln, wäre falsch.

Programme haben oft jeweils nur einen einzigen Autor. Für ganze Anwendungen gilt das auf keinen Fall.

Zum Beispiel:

  • Ein Programm startet das anderes.
  • Server-Klient Architektur.
  • Kommunikation mittels temporäre Dateien.
  • Thrift https://thrift.apache.org/