Unterschied zwischen compiler, interpreter und jit compiler?

... komplette Frage anzeigen

3 Antworten

Der Compiler kompiliert den Code. Am Ende hat man entweder Bytecode oder Maschinencode.

Interpreter führen geschriebenen Code aus, ohne ihn in irgendeinem Zwischenzustand zu haben.

Just-in-time-compiler kompilieren Teiles des Programms während der Laufzeit.

Einige Sprachen können sowohl interpretiert als auch kompiliert werden. LISP zum Beispiel (und Python?).

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ByteJunkey
09.12.2015, 19:55

Das trifft eher zu, als meine Antwort ;)

1
Kommentar von Reality101010
09.12.2015, 19:56

Java und c# auch?? :D

0
Kommentar von TeeTier
10.12.2015, 06:51

... (und Python?)

Ja, Python auch. Bei CPython wird der kompilierte Bytecode danach aber oft weggeworfen, und nur Ausführungszeit im Speicher gehalten. Man kann Python aber auch am Anfang eines Skriptes mit:

sys.dont_write_bytecode = False

... dazu veranlassen, den kompilierten JIT-Code in einer *.pyc Datei zu speichern, die nur dann neu kompiliert wird, wenn der Timestamp der Original-Quelldatei neuer ist, als die PYC-Datei. (erinnert etwas an das Verhalten von "make")

Alternativ kann man auch Umgebungsvariablen oder den "-B" switch verwenden.

0

Compiler: Der Compiler "übersetzt" den ganzen Code beim compilieren in die "Maschienensprache". Es wird nur einmal ausgeführt.
Interpreter: Der Interpreter "übersetzt" zur Laufzeit den Code in "Maschienensprache".
Logische Folger: Der Interpreter ist langsamer.
Falls ich das falsch Erklärt habe, dann bitte korrigieren ;)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Reality101010
09.12.2015, 19:53

und wie kann das beim jit kombiniert werden ??:D

0

Ein Compilier kompiliert, ein Interpreter interpretiert, und ein JIT Compiler kompiliert "Just In Time".

Ich hoffe, das war jetzt kurz und knackig genug. :)

Du darfst mein Posting jetzt gerne als "Hilfreichste Antwort" auswählen.

Vielen Dank im Voraus! :)

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?