Bei herkömmlichen Computern erfolgt die Übersetzung des Programms oder des Quellcodes in Objekt-/Maschinencode durch verschiedene Verfahren, die Assembler, Compiler und Interpreter umfassen. Nachfolgend finden Sie die zugrunde liegenden Details, wie sie sich voneinander unterscheiden.
Contents
Was Sie über Assembler wissen müssen
Ein Assembler ist ein Programm, das grundlegende Computerbefehle oder -befehle nimmt und sie dann in ein Bitmuster umwandelt, das der Computerprozessor verwenden kann, um seine grundlegenden Operationen auszuführen. Normalerweise wird die Sprache, die zum Programmieren des Assemblers verwendet wird, als Assemblersprache bezeichnet . Assembler konvertiert zuerst den Quellcode in einen Objektcode und dann den Objektcode mit Hilfe der Linker-Programme in Maschinensprache.
Details zum Assembler
- Assembler wandelt in Assembler geschriebenen Quellcode in Maschinencode um und dieser Maschinencode wird dann von einem Computer ausgeführt.
- Assembler konvertiert Assemblersprache sofort in Maschinensprache.
- Es konvertiert zuerst einen Quellcode in ein Objekt und dann den Objektcode mit den Linkerprogrammen in Maschinensprache.
- Die Eingabe in den Assembler ist Assemblersprachencode.
- GAS, GNU ist ein Beispiel für einen Assembler.
- Am Ausgang des Assemblers befindet sich verschiebbarer Maschinencode, der von einem Assembler erzeugt wird und durch Binärcode dargestellt wird.
- Assembler kann nicht den gesamten Code auf einmal in Maschinensprache umwandeln.
- Assembler ist weniger intelligent als Compiler.
- Assembler macht zwei Phasen über die gegebene erste Phase und die zweite Phase der Eingabe.
- Es ist schwierig zu debuggen.
Was Sie über Complier wissen müssen
Ein Compiler ist ein Computerprogramm, das in Programmiersprache geschriebenen Quellcode in Maschinensprache umwandelt und dann ausführt. Normalerweise können Compiler einige Zeit in Anspruch nehmen, da sie High-Level-Code sofort in eine niedrigere Maschinensprache übersetzen und dann den ausführbaren Objektcode im Speicher speichern müssen. Auch in einem Compiler wird nach der Konvertierung des gesamten Codes auf einmal ein Fehlerbericht für das gesamte Programm generiert.
Compiler können nach ihrer Funktion oder ihrer Konstruktion klassifiziert werden. Compiler können in Single-Pass, Load-and-Go, Debugging, Multi-Pass und Optimierung eingeteilt werden.
Die Kompilierung erfolgt in den folgenden Phasen : lexikalischer Analysator, Syntaxanalysator, semantischer Analysator, Zwischencodegenerator, Codeoptimierer, Symboltabelle und Fehlerbehandlung .
Details zum Compiler
- Ein Compiler wandelt Hochsprachenprogrammcode in Maschinensprache um und führt ihn dann aus. Hochsprachen sind C und C#
- Complier scannt zuerst das gesamte Programm, bevor es in Maschinencode übersetzt wird.
- Der Compiler nimmt das gesamte Programm als Eingabe.
- Im Falle des Compilers wird ein Zwischenobjektcode generiert.
- Der Compiler benötigt im Vergleich zum Interpreter weniger Ausführungszeit.
- Beispiele sind C, COBOL, C#, C++ usw.
- Compiler benötigt mehr Speicher als Interpreter.
- Wenn Sie Änderungen im Programm vornehmen, müssen Sie das gesamte Programm neu kompilieren, dh das gesamte Programm nach jeder Änderung scannen.
- Der Compiler ist im Vergleich zum Interpreter schneller.
- Normalerweise muss das Programm nicht jedes Mal (wenn es nicht geändert wird) zur Ausführungszeit kompiliert werden.
- Compiler gibt Ihnen die Liste aller Fehler nach der Kompilierung des gesamten Programms.
- Der Compiler wandelt das gesamte Programm in Maschinencode um, wenn alle Fehler beseitigt sind.
- Der Compiler ist beim Debuggen langsam, da Fehler angezeigt werden, nachdem das gesamte Programm überprüft wurde.
- Der vom Compiler generierte Assemblercode ist eine mnemonische Version des Maschinencodes.
Was Sie über Dolmetscher wissen müssen
Interpreter ist ein Computerprogramm, das Anweisungen auf hoher Ebene in eine Zwischenform übersetzt und dann diesen Zwischencode in Maschinensprache umwandelt und; führt konkrete Aktionen durch. Interpreter werden in Softwareentwicklungstools häufig als Debugging-Tools verwendet, da sie jeweils nur einen Code ausführen können. In der Sprache Java arbeiten Compiler und Interpreter zusammen, um Maschinencode zu generieren.
Details zum Dolmetscher
- Interpreter konvertiert Quellcode in die Zwischenform und konvertiert dann diesen Zwischencode in Maschinensprache. Der Zwischencode sieht genauso aus wie Assemblercode.
- Der Interpreter scannt und übersetzt das Programm Zeile für Zeile in den entsprechenden Maschinencode.
- Der Interpreter nimmt einen einzelnen Befehl als Eingabe.
- Im Fall von Interpreter wird kein Zwischenobjektcode generiert.
- Der Interpreter benötigt im Vergleich zum Compiler mehr Ausführungszeit.
- Beispiele sind Python, Perl, VB, PostScript, LISP usw.
- Der Interpreter benötigt im Vergleich zum Compiler weniger Speicher.
- Wenn Sie Änderungen vornehmen und diese Zeile nicht gescannt wurde, müssen Sie das gesamte Programm nicht neu kompilieren.
- Der Interpreter ist im Vergleich zum Compiler langsamer.
- Jedes Zeitprogramm wird zur Ausführungszeit gescannt und übersetzt.
- Interpreter stoppt die Übersetzung bei der Fehlergenerierung und fährt fort, wenn der Fehler behoben ist.
- Jedes Mal, wenn das Programm ausgeführt wird; jede Zeile wird auf Fehler überprüft und dann in äquivalenten Maschinencode umgewandelt.
- Interpreter ist gut für schnelles Debugging. Ein Interpreter setzt die Übersetzung des Programms fort, bis der erste Fehler auftritt, in diesem Fall stoppt er.
- Am Ausgang des Assemblers befindet sich ein relokalisierbarer Maschinencode, der von einem Assembler erzeugt wird, der durch Binärcode repräsentiert wird.
Unterschied zwischen Assembler, Compiler und Interpreter in Tabellenform
Assembler vs. Compiler
VERGLEICHSGRUNDLAGE | MONTEUR | COMPILER |
Wandlung | Assembler wandelt den Assemblercode in den Maschinencode um. | Der Compiler konvertiert den vom Programmierer geschriebenen Quellcode in eine Sprache auf Maschinenebene. |
Eingang | Assembler gibt Quellcode ein. | Compiler-Eingaben sind vorverarbeiteter Quellcode. |
Die Ausgabe | Die Ausgabe von Assembler ist Binärcode. | Die Ausgabe des Compilers ist eine mnemonische Version des Maschinencodes. |
Beispiele | GAS- GNU | C C# Java C++ |
Debugging | Debuggen ist schwierig. | Das Debuggen ist einfach. |
Arbeiten | Assembler konvertiert zuerst den Quellcode in einen Objektcode und dann den Objektcode mit Hilfe von Linkerprogrammen in die Maschinensprache. | Complier scannt zuerst das gesamte Programm, bevor es in Maschinencode übersetzt wird. |
Intelligenz | Assembler ist weniger intelligent als ein Compiler. | Compiler ist intelligenter als Assembler. |
Arbeitsphasen | Assembler macht Arbeiten in zwei Phasen über die gegebene Eingabe. Die Phasen sind: Erste Phase Zweite Phase | Die Kompilation Phasen sind: Lexer Syntax – Analysator Semantic Analysator – Code – Optimierer – Code – Generator Fehlerbehandlung |
Compiler vs. Interpreter
VERGLEICHSGRUNDLAGE | COMPILER | DOLMETSCHER |
Funktion | Ein Compiler wandelt Hochsprachenprogrammcode in Maschinensprache um und führt ihn dann aus. | Interpreter konvertiert Quellcode in die Zwischenform und konvertiert diesen Zwischencode dann in Maschinensprache |
Scannen | Complier scannt zuerst das gesamte Programm, bevor es in Maschinencode übersetzt wird. | Der Interpreter scannt und übersetzt das Programm Zeile für Zeile in den entsprechenden Maschinencode. |
Arbeiten | Der Compiler nimmt das gesamte Programm als Eingabe. | Der Interpreter nimmt einen einzelnen Befehl als Eingabe. |
Codegenerierung | Im Falle des Compilers wird ein Zwischenobjektcode generiert. | Im Fall von Interpreter wird kein Zwischenobjektcode generiert. |
Ausführungszeit | Der Compiler benötigt im Vergleich zum Interpreter weniger Ausführungszeit. | Der Interpreter benötigt im Vergleich zum Compiler mehr Ausführungszeit. |
Beispiele | C COBOL C # C ++ usw. | Python Perl VB PostScript LISP usw. |
Speicherbedarf | Compiler benötigt mehr Speicher als Interpreter. | Der Interpreter benötigt im Vergleich zum Compiler weniger Speicher. |
Änderung | Wenn Sie Änderungen im Programm vornehmen, müssen Sie das gesamte Programm neu kompilieren, dh das gesamte Programm nach jeder Änderung scannen. | Wenn Sie Änderungen vornehmen und diese Zeile nicht gescannt wurde, müssen Sie das gesamte Programm nicht neu kompilieren. |
Geschwindigkeit | Der Compiler ist im Vergleich zum Interpreter schneller. | Der Interpreter ist im Vergleich zum Compiler langsamer. |
Bei der Ausführung | Normalerweise muss das Programm nicht jedes Mal (wenn es nicht geändert wird) zur Ausführungszeit kompiliert werden. | Jedes Zeitprogramm wird zur Ausführungszeit gescannt und übersetzt. |
Fehlererkennung | Compiler gibt Ihnen die Liste aller Fehler nach der Kompilierung des gesamten Programms. | Interpreter stoppt die Übersetzung bei der Fehlergenerierung und fährt fort, wenn der Fehler behoben ist. |
Maschinensprache | Der Compiler wandelt das gesamte Programm in Maschinencode um, wenn alle Fehler beseitigt sind. | Jedes Mal, wenn das Programm ausgeführt wird; jede Zeile wird auf Fehler überprüft und dann in äquivalenten Maschinencode umgewandelt. |
Debugging | Der Compiler ist beim Debuggen langsam, da Fehler angezeigt werden, nachdem das gesamte Programm überprüft wurde. | Interpreter ist gut für schnelles Debugging. |
Code-Version | Der vom Compiler generierte Assemblercode ist eine mnemonische Version des Maschinencodes. | Am Ausgang des Assemblers befindet sich ein relokalisierbarer Maschinencode, der von einem Assembler erzeugt wird, der durch Binärcode repräsentiert wird. |