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
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.
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 .
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.
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 |
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. |
Haben Sie sich jemals gefragt, warum Sie manchmal bei Einkäufen Ihre PIN eingeben müssen und…
Haben Sie sich jemals gefragt, warum Ärzte manchmal eine CT-Untersuchung und in anderen Fällen ein…
Haben Sie sich jemals gefragt, warum manche Menschen von ihrem "Lohn" sprechen, während andere ihr…
Seide oder Baumwolle: Ein ewiger Wettstreit um Weichheit und Komfort 🧵🌿 Haben Sie sich jemals…
Haben Sie sich jemals gefragt, warum manche Radfahrer scheinbar mühelos Steigungen erklimmen, während andere ins…
Staubsaugen - eine lästige Pflicht, die niemand gerne erledigt. 🧹 Doch in der Welt der…