Wie funktioniert ein Interpreter / Compiler? Was ist der Unterschied zwischen Interpreter und Compiler?
quelle
Wie funktioniert ein Interpreter / Compiler? Was ist der Unterschied zwischen Interpreter und Compiler?
Compiler
Compiler waren die ersten Übersetzer, die geschrieben wurden. Die Idee ist einfach: Sie schreiben das Programm und übergeben es dem Compiler, der es übersetzt. Dann führen Sie das Ergebnis aus.
Dolmetscher
Ein Interpreter ist auch ein Programm, das eine Hochsprache in eine Niedrigsprache übersetzt, dies jedoch zum Zeitpunkt der Programmausführung. Sie schreiben das Programm mit einem Texteditor oder ähnlichem und weisen den Interpreter an, das Programm auszuführen. Es nimmt das Programm zeilenweise und übersetzt jede Zeile, bevor es ausgeführt wird: Es übersetzt die erste Zeile und führt sie aus, übersetzt dann die zweite Zeile und führt sie aus usw.
Compiler-Eigenschaften:
Dolmetschereigenschaften:
Was ist ein Übersetzer?
Beispiele für Übersetzer:
Was ist ein Dolmetscher?
Großartig, wenn der Benutzer Anweisungen interaktiv eingibt (denken Sie an Python) und die Ausgabe erhalten möchte, bevor Sie die nächste Anweisung eingeben. Auch nützlich, wenn das Programm nur einmal ausgeführt werden soll oder portabel sein muss.
Unterschiede
Verhalten
Ein Compiler übersetzt Quellcode in Maschinencode, führt jedoch den Quell- oder Objektcode nicht aus.
Ein Interpreter führt den Quellcode einzeln aus, übersetzt den Quellcode jedoch nicht.
Performance
Interpretierende Compiler
Ein interpretierender Compiler ist ein guter Kompromiss zwischen Compilern und Interpreten. Es übersetzt das Quellprogramm in Code der virtuellen Maschine, der dann interpretiert wird.
Ein interpretierender Compiler kombiniert schnelle Übersetzung mit mäßig schneller Ausführung, vorausgesetzt:
Beispiel: JDK bietet einen interpretierenden Compiler für Java.
quelle
Der Compiler wandelt den Quellcode in einer Computersprache in eine andere um.
Der Interpreter führt den Quellcode direkt aus (normalerweise in seiner eigenen virtuellen Maschine).
(Quelle: answers.com )
Im Allgemeinen ist Dolmetscher leistungsintensiv.
quelle
Der Compiler scannt zuerst das gesamte Programm und übersetzt es dann in Maschinencode, der vom Computerprozessor ausgeführt wird.
Der Interpreter übersetzt eine Anweisung in die Maschinensprache, führt sie aus und fährt mit der nächsten Anweisung fort.
Beispiel: Der Compiler gibt fast alle Fehler auf einmal aus, aber der Interpreter wird ausgeführt, bis die Anweisung, die Sie falsch geschrieben haben, angezeigt wird
Quelle
quelle
Der Unterschied zu ihrer Funktionsweise
F: Wofür werden Compiler und Interpreter verwendet?
A: Die meisten Programme sind in Hochsprachen (c #, java ...) geschrieben. Hochsprachen enthalten verständliche Wörter und Sätze. Auf der anderen Seite versteht der Computer (als ich diesen Artikel schrieb) den Maschinencode, der 0 und 1 ist, auch bekannt als Binär- / Maschinencode. Daher müssen wir den High-Level-Code in Quellcode konvertieren, der (Maschinencode / Binär) ist. Daher das Wort konvertieren.
Wir schließen daraus, dass ein Compiler / Interpreter-Job darin besteht, übergeordneten Code in Maschinencode zu übersetzen.
Beide haben jedoch unterschiedliche Möglichkeiten, den Code zu übersetzen
Unterschied:
Compiler:
Dolmetscher:
- beide von: https://www.quora.com/Was- sind- die-Unterschiede- zwischen-einem- Compiler-einem-Interpreter-und-einem-Assembler-Bereitstellen von Beispielen
Vergleichen
- von: https://www.programiz.com/article/difference-compiler-interpreter
Beispiele mit Sprachen
Interpretiert
zusammengestellt
quelle
Compiler - Ein Compiler übersetzt eine Ausgangssprache in eine Zielsprache. Dann nimmt die Zielsprache Eingabe und gibt Ausgabe.
Der Compiler erzeugt einen Zielcode durch Kompilieren des Quellcodes
dann nimmt der Zielcode die Eingabe entgegen und gibt die Ausgabe aus
Interpreter - Anstatt einen Zielcode zu generieren, scheint der Interpreter die Eingabe direkt zusammen mit dem Quellcode zu übernehmen und gibt die Ausgabe aus.
Der Interpreter ordnet die Eingabe der Ausgabe mit dem Quellprogramm zu
Dann ist das vom Compiler erstellte maschinensprachliche Programm viel schneller als der Interpreter beim Zuordnen von Eingaben zu Ausgaben. Da der Interpreter das Quellprogramm zeilenweise ausführt, bietet er eine bessere Fehlerdiagnose als der Compiler.
Referenz - Compiler: Prinzipien, Techniken und Werkzeuge von Aho alias das Drachenbuch
quelle
Um es direkt und intuitiv auszudrücken:
Der Compiler übersetzt den vom Menschen lesbaren Quellcode in Maschinencode, den der Computer lesen und ausführen kann.
Interpreter gibt vor, ein Computer zu sein oder simuliert ihn, um den Quellcode direkt zu lesen und auszuführen.
quelle
Schauen Sie sich das PLAI- Buch an, es ist das beste Intro zur Verwirklichung der dymanischen Sprache, das ich je gefunden habe:
Programmiersprachen: Anwendung und Interpretation (c) Shriram Krishnamurthi
In diesem Buch geht es darum, Interpreter für dynamische Sprache in Schema (dr.Racket) zu schreiben. Mit ihm können Sie Ihren eigenen Interpreter für jede Sprache schreiben und einige Tipps zu OOP von hinzufügen
und SmallTalk und SOM: Simple Object Machine:
Alle modernen Interpreter enthalten Compiler im Inneren: Kompilieren von Highlevel-Elementen in einfachen, aber portablen Bytecode oder Verwenden von JIT zum Kompilieren in Maschinencode in RAM.
PS: Wenn jemand ein SmallTalk-System auf Python schreiben möchte, notiere mich bitte.
quelle