2010-09-06 10 views
5

Mögliche Duplizieren:
How does an interpreter/compiler workExakter Unterschied zwischen Compiler und Interpreter?

Hallo, was ist der genaue Unterschied zwischen dem Compiler und Interpreter?

+0

Dies ist etwas, das durch eine Google-Suche nachgeschlagen werden könnte – Raj

+5

Wir sollten besser zu noobs. Ich sehe keine Probleme darin, eine solche Frage hier zu stellen. – pavanlimo

+0

@pavan, nach den ersten hundert Fragen dieser Klasse (d. H. Doppelt und/oder trivial), können Sie beginnen, das Problem zu sehen ... :-) –

Antwort

5

Aus Wikipedia:

  • Compiler: Ein Compiler ist ein Computerprogramm (oder eine Gruppe von Programmen), die in einer Programmiersprache geschrieben Quellcode transformiert (Ausgangssprache) in einer anderen Computersprache (die Zielsprache, oft eine binäre Form, die als Objektcode bekannt ist).
  • Interpreter: Eine interpretierte Sprache ist eine Programmiersprache, in der Programme "indirekt" von einem Interpreterprogramm ausgeführt ("interpretiert") werden. Dies kann mit einer kompilierten Sprache verglichen werden, die in Maschinencode umgewandelt wird und dann "direkt" von der Host-CPU ausgeführt wird.
3

Compiler

Ein Compiler erzeugt maschinenabhängigen Assembler-Code, der dann auf in die entsprechenden Maschinenoperationscodes zusammengesetzt und verbunden werden, damit das Programm auszuführen. Dieser Prozess kann nur zum Zeitpunkt der Erstellung ausgeführt werden.

Interpreter

Ein Interpreter generiert maschinenunabhängigen Code, der dann on-the-fly zu Assemblercode kompiliert werden kann (z Just-in-Time-Kompilierung). Dieser Prozess kann zur Erstellungszeit und/oder Laufzeit ausgeführt werden.

Hoffe, das hilft!

+0

Nur wenige Dolmetscher produzieren Maschinencode. Wenn der Maschinencode nicht persistiert und wiederverwendet wird (in diesem Fall ist das, was die Konvertierung durchführt, ein Compiler), finden die meisten Interpreter heraus, was zu tun ist, und tun es einfach, ohne zuerst einen Maschinencode zu erzeugen. Der einzige Fall, in dem ein Interpreter normalerweise Maschinencode erzeugen würde, wäre für etwas wie den IN/OUT-Befehl des 8080, der eine fest codierte Adresse benötigt. Um eine Anweisung "OUT 100,5" zu verarbeiten, würde der Interpreter die Anweisungen "OUT 64h" und "RET" an einer festen Stelle speichern, A mit 5 laden und diese Stelle aufrufen. – supercat

Verwandte Themen