SYBSc Informatik – Theoretische Compilerkonstruktion – Fragenpapier
Jahr: 2022
Dauer: 3 Stunden
Anleitung:
Alle Fragen sind Pflichtfragen.
Alle Fragen erhalten die gleiche Punktzahl.
Abschnitt 1:
Beschreiben Sie die Chomsky-Hierarchie anhand endlicher Automaten, Kellerautomaten und Turingmaschinen.
Geben Sie einen kurzen Überblick über die Hauptfunktionen und Komponenten eines lexikalischen Analysators.
Besprechen Sie die verschiedenen Parsing-Techniken, die in Compilern verwendet werden, und achten Sie dabei besonders auf Top-Down- und Bottom-Up-Parsing-Methoden.
Erklären Sie anhand relevanter Beispiele das Konzept der L-attributierten und S-attributierten Grammatiken.
Veranschaulichen Sie, wie die Zwischendarstellung eine entscheidende Rolle im Kompilierungsprozess spielt.
Abschnitt 2:
Entwerfen Sie einen lexikalischen Analysator zur Identifizierung von Bezeichnern und Schlüsselwörtern in einer Programmiersprache.
Schreiben Sie einen regulären Ausdruck, um nach gültigen E-Mail-Adressen zu suchen.
Erklären Sie, wie ein Compiler Typprüfungen und Datentypkonvertierungen durchführt.
Erstellen Sie eine LR(0)-Parsing-Tabelle für eine gegebene Grammatik.
Entwickeln Sie einen Algorithmus zum Erstellen von Kontrollflussdiagrammen für eine Zwischendarstellung.
Abschnitt 3:
Geben Sie einen Überblick über die verschiedenen Arten von Codeoptimierungstechniken, die während der Kompilierung durchgeführt werden.
Besprechen Sie die Bedeutung und Herausforderungen der Generierung von effizientem Maschinencode.
Erklären Sie die Konzepte der Zuweisung lokaler Variablen, des Spill-Codes und der Registerzuweisung im Kontext der Codegenerierung.
Heben Sie die Kompromisse zwischen Platz- und Geschwindigkeitsoptimierung bei der Codegenerierung hervor.
Schreiben Sie kurze Notizen zu Folgendem:
Codefaltung
Kontrollflussabflachung
Eliminierung von totem Code
Loop abrollen
Registerzuordnung
Viel Glück!