Grundlagen des Übersetzerbaus (inf2-ueb)
- Dozent/in
- Prof. Dr. Michael Philippsen
- Angaben
- Vorlesung
2 SWS, ECTS-Studium, ECTS-Credits: 7,5
nur Fachstudium, Sprache Deutsch, Es ist keine Anmeldung erforderlich.
Zeit und Ort: Di 8:15 - 9:45, H13
- Studienfächer / Studienrichtungen
- WF IuK-BA 5-6 (ECTS-Credits: 7,5)
WF CE-BA-TW 5-7 (ECTS-Credits: 7,5)
WPF CE-MA-INF 1-4 (ECTS-Credits: 7,5)
WPF INF-MA ab 1 (ECTS-Credits: 7,5)
WPF INF-BA 5-6 (ECTS-Credits: 7,5)
WPF INF-BA-V-PS 5-6 (ECTS-Credits: 7,5)
WPF IuK-MA-ES-INF 1-4 (ECTS-Credits: 7,5)
- 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
- ECTS-Informationen:
- Title:
- Compiler Construction
- Credits: 7,5
- Contents
- 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: 45
www: https://www.studon.fau.de
- Zugeordnete Lehrveranstaltungen
- UE: Übungen zu Grundlagen des Übersetzerbaus
-
Dozent/in: Dipl.-Math. Jakob Krainz
www: https://www.studon.fau.de
- Verwendung in folgenden UnivIS-Modulen
- Startsemester WS 2015/2016:
- Grundlagen des Übersetzerbaus (PS-UE1)
- Institution: Chair of Computer Science 2 (Programming Systems)
|
|