Grundlagen der Compiler-Konstruktion
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 4,53 KB
- Software-Systeme, die in einem Format verarbeitet werden können, das ein Computer übersetzen und ausführen kann: COMPILER
- Dies ist eine weitere verbreitete Art von Sprachprozessor: INTERPRETER (AUSZULEGEN)
- Der Compiler bildet ein Quellprogramm in ein Programm mit semantischer Gleichwertigkeit ab; für diese Zuweisung existieren nur wenige Prozesse: ANALYSE UND SYNTHESE
- Teilen Sie das Quellprogramm in Komponenten auf und weisen Sie ihnen eine grammatikalische Struktur zu: ANALYSE-TEIL
- Erstellen Sie das gewünschte Zielprogramm aus der Zwischendarstellung und den Informationen aus der Symboltabelle: SYNTHESE-TEIL
- Seine Hauptaufgabe ist es, die Zeichen im Quellprogramm zu lesen: LEXIKALISCHE ANALYSE (GLOSSAR)
- Es besteht aus einfachen Prozessen, die keine Bestimmung von Token am Eingang benötigen: SCANNING
- Es ist eine Beschreibung, wie ein Lexem ein Token annimmt: MUSTER (PATRON)
- Schreiben Sie ein Beispiel für ein Token: IF, ELSE
- Sie bestehen aus Graphen wie Zustandsübergangsdiagrammen, mit einigen Unterschieden: ENDLICHE AUTOMATEN
- Die Analyse prüft, ob die Bedeutung dessen, was gelesen wird, korrekt ist: SEMANTIK
- Weg, um die theoretische Leistung der Phase der semantischen Analyse darzustellen: BAUM (ARBOL)
- Prüfen Sie die Übereinstimmung eines Systemprogramms und seiner Spezifikation ohne Ausführung des Codes: STATISCHE PRÜFUNG
- Sie dienen dazu, die semantischen Informationen über einen Code zu verarbeiten: ABSTRAKTE SYNTAXBÄUME
- Es besteht aus Terminalen, Nicht-Terminalen, Startsymbol und kontextfreien Produktionen: GRAMMATIKEN
- Sie legen fest, wie die Terminale kombiniert werden können, um Nicht-Terminal-Ketten einer Grammatik zu bilden: PRODUKTIONEN
- Grammatik, die mehr als eine Ableitung von links oder mehr als einen Ableitungsbaum für denselben Ausdruck erzeugt: MEHRDEUTIGE GRAMMATIK
- Für die meisten Parser ist es wünschenswert, dass die Grammatik keine Unklarheiten aufweist. Frage: Warum ist Mehrdeutigkeit nicht zweckmäßig?
- Es ist eine Art, BNF-Produktionen zu schreiben: GRAMMATIK
- Parsing, das eine Ableitung sucht, indem es von der linken Seite einer Eingabezeichenkette ausgeht: ABSTEIGEND (TOP-DOWN)
- Datenstrukturen werden von Compilern zur Speicherung von Informationen über den Aufbau eines Quellprogramms verwendet: SYMBOLTABELLE
- Sie enthalten Informationen über einen Bezeichner (z. B. String oder Lexem): TABELLENEINTRÄGE FÜR SYMBOLE
- Im Allgemeinen, was muss man tun, um die Symboltabellen in ein Programm zu übertragen? Verschiedene Erklärungen desselben Bezeichners.
- Wer erstellt die Einträge in der Symboltabelle? IDENTIFIKATOREN (BEZEICHNER)
- Eine Bezeichnung, die sich auf den Umfang einer Deklaration von x bezieht: ID-VERKNÜPFUNG (ENLACE d ID)
- Sie profitieren von ihrer Herrschaft über die Verschachtelung von Blöcken in der Nähe: OPTIMIERUNG DER TABELLEN
- Regel, die besagt, dass ein Bezeichner x im Geltungsbereich der Deklaration des am nächsten verschachtelten Blocks liegt: REGEL DES NÄCHSTEN X
- Es ist die Darstellung des Zwischen-Quellprogramms, das vom Front-End erstellt wurde: FRONT-END
- Gemeinsame Architekturen des Zielsystems.
- Der Codegenerator muss das Programm in ein Zwischenprodukt umwandeln, damit der Zielrechner den Code ausführen kann. Erwähnen Sie zwei Faktoren, die die Komplexität dieser Zuweisung beeinflussen.
- Erklären Sie in Ihren Worten jede Phase der Analyse eines Compilers:
- Lexikalische Analyse: erhält Eingabe von Zeichen.
- Syntaktische Analyse: prüft, ob Anweisungen richtig geschrieben sind.
- Semantische Analyse: beauftragt mit der Anweisung in einer logischen Abfolge.
- Zwischencodegenerierung: Code fast fertig zum Testen.
- Code-Optimierung: Code verbessert oder unnötige Prüfungen entfernt.
- Codegenerierung: Der endgültige Code wurde erstellt.