UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 
 Darstellung
 
Druckansicht

 
 
 Außerdem im UnivIS
 
Vorlesungs- und Modulverzeichnis nach Studiengängen

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
Vorlesungsverzeichnis >> Technische Fakultät (TF) >>

  Grundlagen des Übersetzerbaus (inf2-ueb)

Dozentinnen/Dozenten
Patrick Kreutzer, M. Sc., Marius Kamp, M. Sc., Prof. Dr. Michael Philippsen

Angaben
Vorlesung
2 SWS, ECTS-Studium, ECTS-Credits: 7,5
nur Fachstudium, Sprache Deutsch, Voraussetzung zur Teilnahme an der Modulprüfung ist die erfolgreiche Bearbeitung der Übungsaufgaben.
Zeit und Ort: Fr 10:15 - 11:45, H6

Studienfächer / Studienrichtungen
WF IuK-BA 5-6 (ECTS-Credits: 7,5)
WPF IuK-MA-ES-INF 1-4 (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 ICT-MA-ES 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/crs2854183.html

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: 110
www: https://www.studon.fau.de/crs2854183.html

Zugeordnete Lehrveranstaltungen
UE: Übungen zu Grundlagen des Übersetzerbaus
Dozentinnen/Dozenten: Patrick Kreutzer, M. Sc., Florian Mayer, M. Sc., Michael Baer, M. Sc.
www: https://www.studon.fau.de/crs2854183.html

Verwendung in folgenden UnivIS-Modulen
Startsemester WS 2019/2020:
Grundlagen des Übersetzerbaus (PS-UE1)

Institution: Lehrstuhl für Informatik 2 (Programmiersysteme)
UnivIS ist ein Produkt der Config eG, Buckenhof