Unterschied zwischen Compiler/ Interpreter?
?
4 Antworten
Keiner der beiden liest den Code sofort. Bestenfalls werden Syntax-Fehler sofort erkannt.
- Der Interpreter liest den Code direkt, sobald du ihn ausführen willst (run), und interpretiert die Code-Zeilen nacheinander. Der Interpreter muss also gleichzeitig aktiv sein wie dein Programm selbst. Er kann Codierfehler erst während des Ausführens bemerken, das heisst, das Programm kann einen Moment laufen und plötzlich abstürzen.
- Der Compiler übersetzt den Code in Maschinencode, bevor das Programm dann ausgeführt wird. Den Compiler brauchst du dann nicht mehr, sobald er dir ein ausführbares Programm erstellt hat (Bei DOS/WIN waren/sind das die .COM oder .EXE-Dateien). Der Compiler erkennt Codierfehler vor dem Ausführen des Programms, wenn er ein "Übersetzungsproblem" hat.
Compiler erzeugt maschinen/bytecode;
Interpreter verarbeitet bytecode. Beispiel:
Ein C Programm braucht "keinen" interpreter. python, java, c# und sicher noch viele andere brauchen einen. Bei beispielsweise python ist das kompilieren garnicht nötig (natürlich sollte der interpreter als bin vorliegen)
Beim Compiler wird eine ausführbare Datei erstellt.
Ein Interpreter geht "nur" eine Textdatei durch und macht was in der Datei steht.
Ehm, mit einer TextEditor bzw. Eintwicklungsumgebung schreibt man Programme, nicht mit einem Interpreter. In der Regel unterscheidet man zwischen Skripten und Programmierung.
Skripten ist eine Teilmenge von Programmieren.
Skripten kannst du sagen, wenn du bestimmte Sachen herforheben willst - also kleinere Programme, die recht schnell zusammengetippt wurden.
Aber es sagt z.B auch niemand, dass eine Skriptsprache interpretiert sein muss. Das ist nur häufig der Fall.
Der Compiler erstellt aus Quelltext Dateien eine Ausführbare .exe Datei. Dabei wird der Quelltext umgewandelt in Maschinencode der direkt vom jeweiligen Prozessor ausgeführt werden kann.
Beim Interpreter wird Quelltext interpretiert also ebenfalls ausgeführt aber nicht direkt auf Prozessorebene sondern durch den Interpreter der die Befehle "auf die Schnelle" in Maschinencode übersetzt.
Der Quelltext muss aber vorher trotzdem compiliert werden und zwar zu Bytecode, das ist so eine Art halbfertiger Maschinencode ist aber schneller verarbeitbar ist als der nackte Quelltext.
Welches von den beiden Programmen liest sofort den Code und nicht am Ende wenn der Quellcode geschrieben ist ?