Übersetzerbau Entwurf - Überblick



Computer sind ein ausgewogener Mix aus Software und Hardware. Hardware ist nur ein Stück von mechanischen Gerät und seine Funktionen werden von einem kompatiblen Software gesteuert. Hardware versteht Anweisungen in Form von elektronisch Ladung, die das Gegenstück binäre Sprache in der Software-Programmierung ist. Binary Sprache hat nur zwei Alphabete, 0 und 1. Um anzuweisen, die Hardware-Codes müssen geschrieben im Binärformat, das ist einfach eine Reihe von 1s und 0s. Es wäre eine schwierige und mühsame Aufgabe sein, für Computer-Programmierer, diese Codes zu schreiben, weshalb wir haben Compiler, diese Codes zu schreiben.

Sprache Verarbeitung System

Wir haben gelernt, dass jedes Computersystem besteht aus Hard- und Software. Die Hardware versteht eine Sprache, die Menschen nicht verstehen. So schreiben wir Programme in Hochsprache, die für uns einfacher zu verstehen und zu merken ist. Diese Programme werden dann in einer Reihe von Werkzeugen und Betriebssystemkomponenten zugeführt, um den gewünschten Code, der von der Maschine verwendet werden kann, zu erhalten. Dies wird bekannt als Sprache Verarbeitung System.

Language Processing System

Die High-Level-Sprache ist in binäre Sprache in unterschiedlichen Phasen umgewandelt. Ein Compiler ist ein Programm, Hochsprache Assembler konvertiert. Ebenso kann ein Assembler ist ein Programm, das Assemblersprache zu Maschinenebene Sprache konvertiert.

Lassen Sie uns zunächst verstehen, wie ein Programm, verwendung C-Compiler auf einem Host-Computer hingerichtet wird.

  • Benutzer schreibt ein Programm in C-Sprache (Hochsprache).

  • Der C-Compiler, kompiliert das Programm und übersetzt sie in Assembler-Programm (Low-Level-Sprache).

  • Ein Assembler übersetzt dann die Montage Programm in Maschinencode (Objekt).

  • Ein Linker-Tool wird verwendet zu link um alle Teile des Programms miteinander für die Ausführung (ausführbaren Maschinencode).

  • Ein Loader lädt alle von ihnen in den Speicher und dann das Programm ausgeführt wird.

Vor dem Tauchen direkt in die Konzepte der Compiler, wir sollten verstehen ein paar andere Tools dass eng mit den Compiler arbeiten.

Präprozessor

Ein Präprozessor, in der Regel als Teil der Compiler betrachtet, ist ein Werkzeug, Eingang für Compiler erzeugt. Es befasst sich mit Makroverarbeitung, Vergrößerung, File Inclusion, Spracherweiterung, etc.

Dolmetscher

Ein Dolmetscher, wie ein Compiler übersetzt Hochsprache in Low-Level-Maschinensprache. Der Unterschied liegt in der Art, wie sie den Quellcode oder Eingabe gelesen. Ein Compiler liest den gesamten Quellcode auf einmal schafft Tokens prüft Semantik erzeugt Zwischencode, führt das ganze Programm und kann viele Pässe beinhalten. Im Gegensatz dazu liest ein Dolmetscher eine Erklärung des Eingangs, wandelt es in ein Zwischencode, führt sie aus, übernimmt dann die nächste Anweisung in der Reihenfolge. Wenn ein Fehler auftritt, wird ein Dolmetscher Ausführung und meldet sie. während ein Compiler liest das ganze Programm, auch wenn es einige Fehler auftreten.

Assembler

Ein Assembler übersetzt Assembler-Programme in Maschinen Code. Die Ausgang von eines Assembler namens als eine Objektdatei, die enthält eine Kombination von Maschinenbefehlen ebenso gut wie die Daten erforderlich zu Ort diese Anweisungen in den Speicher.

Linker

Linker ist ein Computerprogramm, das verbindet und mischt verschiedene Objektdateien zusammen, um eine ausführbare Datei zu machen. Alle diese Dateien können durch separate Montage kompiliert wurden. Die Hauptaufgabe eines Linkers ist es, suchen und finden referenzierten Modul / Routinen in einem Programm, und um den Speicherplatz, wo diese Codes geladen werden bestimmen, dass das Programm Anweisung absolute Bezüge haben.

Loader

Loader ist ein Teil des Betriebssystems und ist für das Laden von ausführbaren Dateien in den Speicher, und führen Sie sie verantwortlich. Es berechnet die Größe eines Programms (Befehle und Daten) und schafft Speicherplatz dafür. Er initialisiert verschiedene Register, um die Ausführung zu starten.

Cross-compiler

Ein Compiler, der auf der Plattform (A) verläuft, und ist in der Lage ausführbaren Code für Plattform (B) ist aufgerufen ein Cross-Compiler.

Source-zu-source Compiler

Ein Compiler, der den Quellcode einer Programmiersprache erfolgt und übersetzt sie in den Quellcode des anderen Programmiersprache heißt eine Source-zu-Source-Compiler.

Advertisements