Grundlagen der Compiler-Technik: Fragen und Antworten

Eingeordnet in Informatik

Geschrieben am in mit einer Größe von 3,58 KB

1. Was ist ein Metacompiler?

Ein Metacompiler ist ein Programm, das als Eingabe die Spezifikation einer Sprache erhält, für die ein Compiler erstellt werden soll. Als Ausgabe generiert er den Compiler für diese Sprache. Metacompiler erleichtern die Entwicklung, indem sie die Analysephase mit der Code-Generierung verbinden.

2. Was ist ein Übersetzer?

Ein Programm, das einen Text oder ein Programm von einer Quellsprache in eine Zielsprache konvertiert und dabei, falls möglich, Fehlermeldungen ausgibt.

3. Was ist die Funktion eines Sprachübersetzers?

Die Übertragung einer Sprache in eine andere, beispielsweise von Englisch nach Spanisch.

4. Wie funktioniert ein Compiler?

Ein Compiler übersetzt einen Satz in einer formalen Sprache in eine ausführbare Datei. Er wandelt eine Hochsprache in Maschinencode um.

5. Wie funktioniert ein Interpreter?

Im Gegensatz zum Compiler erfolgt keine separate Ausgabe einer ausführbaren Datei. Das Eingabeprogramm wird analysiert und sofort ausgeführt.

6. Was sind pseudointerpretierte Sprachen?

Sprachen, bei denen das Programm durch einen Pseudocompiler läuft, der ein Pseudoejecutable erzeugt. Dieses wird von einer Execution Engine ausgeführt. Dies bietet den Vorteil der Portabilität, da nur die Laufzeitumgebung auf dem Zielrechner benötigt wird.

7. Wie funktioniert ein Präprozessor?

Er modifiziert das Quellprogramm vor der eigentlichen Kompilierung, wobei er häufig Makros und Richtlinien verwendet.

8. Was ist das Ziel eines Befehlsinterpreters?

Er übersetzt einfache Befehle in Aufrufe für Bibliotheks-Programme. Sie werden primär von Betriebssystemen (z. B. DOS- oder UNIX-Shell) verwendet, um die Ausführung von Programmen zu starten, die im Speicher oder auf der Festplatte liegen.

9. Was ist der Zweck von Assemblern und Makroassemblern?

  • Assembler: Ein einfacher Compiler, bei dem die Ausgangssprache eine Eins-zu-eins-Entsprechung zwischen den Anweisungen und dem Maschinencode aufweist.
  • Makroassembler: Ein Assembler mit einem vorgeschalteten Präprozessor, der Makros in der Regel in mehrere Maschinenbefehle übersetzt.

10. Unterschied zwischen Assembler und Makroassembler

Der Assembler arbeitet mit einer Eins-zu-eins-Entsprechung, während der Makroassembler eine Anweisung in mehrere Maschinenbefehle übersetzen kann.

11. Was ist ein Source-to-Source-Konverter?

Er übersetzt eine Hochsprache in eine andere Hochsprache, um die Portabilität zu verbessern.

12. Was ist ein Cross-Compiler?

Ein Compiler, der Code für eine andere Zielplattform erzeugt. Sie werden häufig bei der Entwicklung neuer Computersysteme eingesetzt.

13. Was sind die drei Phasen der Programmausführung?

  1. Kompilieren
  2. Linken
  3. Ausführen

14. Was ist eine OBJ-Datei?

Eine Datei mit einer spezifischen Satzstruktur, die Maschinencode, Dateninformationen und Verweise auf externe Objekte enthält.

15. Was ist ein Kompilierungsdurchlauf?

Die Anzahl der Lesevorgänge des Quellprogramms. In manchen Fällen reicht ein einmaliges Lesen der Quelldatei für die Kompilierung nicht aus.

16. Was ist inkrementelle Kompilation?

Ein Verfahren, bei dem nach der Fehlerkorrektur nicht das gesamte Programm neu kompiliert wird, sondern nur die geänderten Teile. Im Idealfall werden nur die fehlerhaften Abschnitte neu übersetzt und in den bereits generierten OBJ-Code integriert.

Verwandte Einträge: