Navigation

Grundlagen des Übersetzerbaus (UE1)

Grundlagen des Übersetzerbaus

Dozent/in

Details

Zeit/Ort n.V.:

Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.

  • Fr 10:15-11:45, Raum H6

Studienfächer / Studienrichtungen

  • WF IuK-BA ab Sem. 5
  • WPF IuK-MA-ES-INF ab Sem. 1
  • WPF CE-MA-INF ab Sem. 1
  • WPF INF-MA ab Sem. 1
  • WPF INF-BA ab Sem. 5
  • WPF INF-BA-V-PS ab Sem. 5
  • WPF ICT-MA-ES ab Sem. 1

Inhalt

Auf den ersten Blick erscheint es wenig sinnvoll, sich mit Übersetzerbau zu beschäftigen. Andere Themen scheinen wesentlich näher an der direkten Anwendbarkeit in der industriellen Praxis. Der erste Blick täuscht:

  • Übersetzer gehören wohl zu den am gründlichsten studierten mittelgroßen sequentiellen Software-Systemen. Man kann viel aus den Erfahrungen lernen, die im Laufe der Jahre gesammelt wurden.
  • In den Übungen, die die Vorlesung begleiten, werden Sie selbst einen (kleinen) Übersetzer entwickeln.
  • Für viele Teilnehmer wird dieses Projekt das erste größere Software-Projekt sein. Viele der Algorithmen aus dem Grundstudium werden angewendet.
  • Bei jedem von Ihnen verwendeten Übersetzer gehen Sie in der Regel davon aus, dass richtiger Coder erzeugt wird. In der Vorlesung erfahren Sie, wie das geforderte hohe Maß an Korrektheit und Zuverlässigkeit erreicht wird.
  • Sie erlangen ein Verständnis für Konzepte von Programmiersprachen und verstehen, welcher Maschinen-Code aus Sprachkonstrukten gemacht wird. Mit diesem Wissen im Hinterkopf verbessern Sie Ihre Fähigkeit, gute und effiziente Programme zu schreiben.
  • Übersetzer werden nicht nur für Programmiersprachen benötigt. Spezielle Übersetzer braucht man in vielen Bereichen des täglichen Informatik-Lebens z.B. zur Textformatierung, für Programmtransformationen, für aspektorientiertes Programmieren, für die Verarbeitung von XML, ...
  • Es gehört zu einer Ingenieur-Ausbildung, in der Lage zu sein, diejenigen Werkzeuge selbst zu fertigen, die man verwendet. Für Informatiker gehört daher ein Verständnis vom Innenleben eines Übersetzers zum Rüstzeug.

Themen der Vorlesung:

  • Übersetzungsprinzipien für imperative Sprachen
  • Struktur eines Übersetzers
  • Symbolentschlüssler und Zerteiler (Scanner und Parser)
  • Abstrakter Syntaxbaum
  • Symboltabellen, Umgebungen
  • Attributgrammatiken
  • Semantische Analyse, Typprüfung
  • Automatische Speicherbereinigung
  • Code-Erzeugung
  • Register Optimization

Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs2854183.html

ECTS-Informationen

Titel

Compiler Construction

Credits

7,5

Inhalt:

At first glance, it may appear less important to focus on compiler

construction. Other areas seem to be much more applicable to current

tasks in industrial practice. But appearences are deceptive:

- Compilers are among the most thoroughly studied middle-sized sequential software systems. Hence, there is a lot to learn from the experience made in the past.

- In the exercises that accompany this lecture, you will construct your own (small) compiler.

- For many participants, this project will be their first bigger software project.

- Normally, you expect every compiler you use to generate correct code. In the lecture, you will learn how one can achieve the required degree of correctness and reliability.

- You will gain an understanding of the concepts of programming languages and of how high-level language features are translated into machine code. Keeping this knowledge at the back of your mind, you will improve your capability to write good and efficient programs.

- Compilers are used not only for programming languages. Special compilers are needed in many areas of every-day life in computer science, e.g. for text formatting, program transformations, aspect oriented programming, XML processing etc.

- Every engineer should be able to build the tools he/she is using. For computer scienctists, this requires an in-depth understanding of the guts of compilers.

Topics covered in the lecture:

- Principles to compile imperative programming languages

- The structure of a compiler

- Scanner and Parser

- Abstract syntax tree

- Symbol tables, environments

- Attributed grammars

- Semantic analysis, type checking

- Automatic garbage collection

- Code generation

- Register Optimization

Zusätzliche Informationen

Erwartete Teilnehmerzahl: 110

www: https://www.studon.fau.de/crs2854183.html

Übungen zu Grundlagen des Übersetzerbaus

Dozent/in

Details

Zeit/Ort n.V.:

  • Mo 10:00-12:00, Raum 02.134-113
  • Di 12:15-13:45, Raum 02.133-113
  • Do 14:15-15:45, Raum 02.133-113

Studienfächer / Studienrichtungen

  • WF IuK-BA ab Sem. 5
  • WPF IuK-MA-ES-INF ab Sem. 1
  • WPF CE-MA-INF ab Sem. 1
  • WPF INF-MA ab Sem. 1
  • WPF INF-BA ab Sem. 5
  • WPF ICT-MA-ES ab Sem. 1

Inhalt

Im Rahmen der Übungen werden die in der Vorlesung vorgestellten Konzepte und Techniken zur Implementierung eines Übersetzers in die Praxis umgesetzt. Ziel der Übungen ist es, bis zum Ende des Semesters einen funktionsfähigen Übersetzer für eine Beispiel-Programmiersprache zu implementieren.

Die hierfür nötigen zusätzlichen Kenntnisse (z.B. Grundlagen des Assemblers für PowerPC) werden in den Tafelübungen vermittelt.

Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt: https://www.studon.fau.de/crs2854183.html

Zusätzliche Informationen

Erwartete Teilnehmerzahl: 90

www: https://www.studon.fau.de/crs2854183.html