Service and Software Engineering

Interim Professor: Dr. Thomas Göthel

Ankündigung der Lehrveranstaltung

Compiler und Programmtransformation im WS 2014 / 2015


verantw. Hochschullehrer: PD Dr. Henning Bordihn
Studiengang: Bachelor und Master
Semester: ab 5.
Voraussetzungen:
SWS: 4
Credits: 6 (benotet / eigenst. Arbeit)
Zuordung: Theoretische Informatik, Praktische Informatik, Wahlfrei
in Comp. Science: Aufbaumodul bzw. Vertiefungsmodul, Wahlpflicht

Belegung:

Die Belegung der Lehrveranstaltungen erfolgt entsprechend den Bestimmungen des Instituts für Informatik auf elektronischem Weg über:

https://puls.sb-portal.uni-potsdam.de.
 


Termine:

Art Tag Uhrzeit Raum Beginn Dozent
V Mo 10:15-11:45 3.06.H01 13.10. Henning Bordihn
Ü Fr 12:30-14:00 3.04.0.02 24.10. Henning Bordihn

Inhalt:

In modernen Ansätzen der Softwareentwicklung greift man immer häufiger auf spezialisierte Hochsprachen zurück, die auf Apekte der jeweiligen Anwendungsdomäne oder eine möglichst einfache Kommunikation mit Auftraggebern oder potenziellen Kunden zugeschnitten sind. Dies erlaubt eine Beschreibung der Systeme, die von technischen Details abstrahiert und ihre Validierung erleichtert.

Einen größeren Mehrwert erzielt man, wenn die Hochsprachen-Beschreibungen automatisch in ausführbare Sprachen transformiert werden können. Dieser Prozess wird von klassischen Compilern ausgeführt, die Beschreibungen z.B. in universellen Programmiersprachen in Maschinencode übersetzen.

In diesem Kurs werden die Methoden und Techniken des klassischen Compilerbaus behandelt. Darauf aufbauened wird dann erläutert, was bei der Definition von domänenspezifischen Hochsprachen zu beachten ist und wie die klassichen Compiler-Techniken auf die Transformation dieser Sprachen in andere Programmiersprachen angewendet werden können.

Die in der Vorlesung vorgestellten Techniken werden sowohl theoretisch beleuchtet als auch anhand konkreter Anwendungsszenarien im Rahmen der Übungen erprobt. Geeignete Softwaretools werden vorgestellt, von denen ausgewählte in einem kleinen Projekt eingestzt werden.


Vorlesung:

1 Einführung Einfuehrung.pdf (1 MB)
2 Scanning 02-scanning.pdf (480 KB)
3 Parsing 03-parsing.pdf (659 KB)
4 Parsing Top-Down 04-parsing-top-down.pdf (904 KB)
5 Parsing Bottom-Up 05-parsing-bottom-up.pdf (932 KB)
6 Einführung in ANTLR 06a-antlr-introduction.pdf (533 KB)
Weed 06b-weed.pdf (238 KB)
7 Symbol and Scope 07-symbol.pdf (701 KB)
8 Type Checking 08-type-checking.pdf (1 MB)
9 Code Generation (komplett) 09-code-generation.pdf (961 KB)
10 MDSD 10-MDSD.pdf (4 MB)
11 Xtext 11-Xtext.pdf (2 MB)
12 Static Analysis 12-static-analysis.pdf (813 KB)
Übung:

1 Scanning uebung-1.pdf (128 KB)
2 Parsing Top-Down uebung-2.pdf (134 KB)
Parsing Top-Down Musterlösung uebung-2-loesung.pdf (246 KB)
3 Mehr Parsing Top-Down uebung-3.pdf (68 KB)
Mehr Parsing Top-Down Musterlösung uebung-3-loesung.pdf (78 KB)
4 Parsing Bopttom-Up uebung-4.pdf (132 KB)
P1 1. Projektaufgabe: ANTLR ANTLR-Projekt.pdf (195 KB)
Quellcode Pong Pong.mgpl (2 KB)
Quellcode Space Invaders Invaders.mgpl (3 KB)
5 Nichtkontextfreie und attributierte Grammatiken uebung-5.pdf (34 KB)
6 Statisches Typsystem uebung-6.pdf (46 KB)
P2 2. Projektaufgabe: Xtext Xtext-Projekt.pdf (146 KB)
Eclipse mit Xtext und Workspace xtexteclipse.zip (305 MB)
7 Statische Analyse 1 uebung-7.pdf (92 KB)
8 Statische Analyse 2 uebung-8.pdf (110 KB)

Leistungserfassung:

Es sind einige Miniprojekte im Rahmen der Übungen abzugeben.

Eine aktive Teilnahme an den Übungen wird erwartet.

Für die Note ist neben dem Übungsverhalten eine ca. 30-minütige mündliche Prüfung nach Abschluss der Lehrveranstaltungen ausschlaggebend.


Literatur:

Wird in der Vorlesung bekanntgegeben.