Moin,
die andere Antwort war schon ziemlich gut, aber ein bisschen kann man noch hinzufügen/korrigieren.
es geht mir darum wo der Compiler bzw. der Interpreter
hinterlegt ist
Ein Compiler und ein Interpreter sind beides Programme, wie andere Programme auch und sie müssen in den meisten Betriebssystemen ganz normal installiert werden. Wenn man eine komplette Entwicklungsumgebung installiert, sind Compiler und/oder Interpreter meist dabei, die werden aber als einzelne Programme mit installiert.
„Hinterlegt“ sind sie also in dem Verzeichnis, wo sie installiert wurden.
Und wenn das Programm dann auf einer anderen Plattform laufen
soll, muss dann zusätzlich ein Interpreter bzw. Compiler
installiert werden?
Da gibt es zweierlei. Wchtig ist hier der Unterschied zwischen Compiler und Interpreter. Der Compiler übersetzt ein Programm vor der Laufzeit in Maschinencode (s. anderes Posting). Damit ist das fertig compilierte Programm NUR auf dem Betriebssystem lauffähig, unter dem es compiliert wurde. Ein unter Windows compiliertes Programm läuft nicht unter Linux. Ein Compiler muss nur da installiert sein, wo das Programm übersetzt wird.
Der Interpreter übersetzt ein Programm erst zur Laufzeit in Maschinencode. Ein Programm, das in einer Interpreter-Sprache geschrieben ist, ist auf allen Betriebssystemen lauffähig, für die es den Interpreter gibt. Der Interpreter muss allerdings überall da installiert sein, wo das Programm laufen soll.
Für Java Programme wird ja Java Runtime benötigt.
Java ist so ein Zwischending. Java ist sowohl Compiler als auch Interpreter. Java-Programm müssen erst compiliert werden in einen Bytecode, der dann vom Java-Interpreter gelesen wird. Das ist ein Grund für die Beliebtheit von Java, man entwickelt in einer Hochsprache, die C++ sehr ähnlich ist, erstellt aber Programme, die mit der JRE auf allen Betriebssystemen lauffähig ist.
Aber wie
sieht es mit C++ Programmen aus oder bei Java Script.
C++ wird compiliert für ein Betriebssystem.
JavaScript ist eine Scriptsprache, was fast immer auf einen Interpreter hinweist. Der steckt im Browser (oder im Server für serverseitiges JS).
Compilierte Programme sind in der Regel schneller als interpretierte.
Liebe Grüße,
-Efchen