Seminar: Types and Programming Languages
Leitung | Prof. Dr. Peter Thiemann |
Zeit und Ort | SR 00-019, Geb. 079 |
Mitwirkung | Matthias Keil |
Beschreibung
Typsysteme sind ein wichtiger Bestantdeil moderner Programmiersprachen. Sie garantieren Sicherheitsaspekte von Programmen, können bei Optimierung helfen und dienen der Dokumentation.
In den ersten Wochen des Seminars werden die notwendingen Grundlagen durch die Lektüre und gemeinsame Diskussion ausgewählter Kapitel aus "Types and Programming Languages" [1] erworben. In späteren Seminarsitzungen stellen dann die Teilnehmer ihre erarbeiteten Themen vor.
Prüfungsleistung
- Vorbereitung und Halten eines 30-minütigen Vortrags
- Erstellen einer Ausarbeitung (10 - 15 Seiten)
- Erstellen eines Reviews zu einer Ausarbeitung
- Aktive Teilnahme an den Seminarsitzungen
In einem Seminar werden in erster Linie Fachkenntnisse vertieft, aber auch Kompetenzen vermittelt, die eine notwendige Grundlage für eine wissenschaftliche Arbeitsweise sind. Dazu gehören:
- Eigenständige Literaturrecherche
- Lesen und Verstehen von wissenschaftlichen Texten
- Vortragstechniken
- Erstellen einer schriftlichen Ausarbeitung
Ablauf
- Jeder Teilnehmer hat 30 Minuten Zeit für den Vortrag, dannach gibt es 15 Minuten Zeit für Fragen bzw. die Diskussion des Vortrags.
- Bis Ende Mai soll jeder Teilnehmer ein Treffen mit seinem Betreuer abhalten, wo das Paper grob durchgesprochen werden kann!
- Ein Entwurf der Ausarbeitung muss bis zum 04. Juli abgegeben werden!
- Das Review einer anderen Ausarbeitung muss bis zum 11. Juli abgegeben werden!
- Der Vortrag (Folien) muss bis zum 25. Juli dem Betreuer vorliegen.
Diese Termine sind unbedingt einzuhalten um erfolgreich an dem Seminar teilzunehmen!
Zeitplan
In den ersten Sitzungen werden wir folgende Abschnitte aus "Types and Programming Languages" [1] von Benjamin C. Pierce besprechen:
Datum | Thema |
---|---|
29.04.2014 | Kick-Off Meeting/ Types and Programming Languages [1] |
06.05.2014 | Types and Programming Languages [1] Folien dazu |
13.05.2014 | Types and Programming Languages [1] Cardelli's Type Systems paper |
04.07.2014 | Abgabe Schriftliche Ausarbeitung (Entwurf) |
11.07.2014 | Abgabe Review |
25.07.2014 | Abgabe Folien / Abgabe Schriftliche Ausarbeitung (Final) |
30.07.2014 | Vortrag |
In der Sitzung am 13.05.2014 werden die Vortragsthemen verteilt. Die Vorträge der Seminarteilnehmer werden am Ende des Semesters stattfinden.
Vortragstermine
Datum | Vortragender | Thema |
---|
Ausarbeitung
Die Ausarbeitung soll 10-15 Seiten umfassen. Sie muss mit LaTeX und dem Template LNCS erstellt werden. Abgabetermin für die Ausarbeitung ist der 25.07.2014.
Das Review soll 1-2 Seiten umfassen. Es muss mit LaTeX und dem Template LNCS erstellt werden. Abgabetermin für das Review ist der 11.07.2014.
Themen
Thema | Student | Betreuer |
---|---|---|
Subtyping [1] (Kapitel 15, Subtyping: Kapitel 16, Metatheory of Subtyping) | ||
Imperative Objects [1] (Kapitel 18, Case Study: Imperative Objects) | ||
Featherweight Java [1] (Kapitel 19, Case Study: Featherweight Java) | Hannes Saffrich | Matthias Keil |
Type Reconstruction [1] (Kapitel 22, Type Reconstruction) | ||
Universal Types [1] (Kapitel 23, Universal Types) | Sven Strütt | Robert Jakob |
Existential Types [1] (Kapitel 24, Existential Types) | ||
Region-based Type Systems [2],[3] | Christopher Dillo | Luminous Fennell |
Liquid Types [4] (Kapitel 24, Existential Types) | ||
The Design and Implementation of Typed Scheme [5] (Kapitel 24, Existential Types) | ||
Principles of Secure Information Flow Analysis [6],[7] | Yang Zhang | Matthias Keil |
Fable: A Language for Enforcing User-defined Security Policies [8] | ||
Programming with Permissions in Mezzo [9] | Carl Küsters | Luminous Fennell |
Material
Das Seminar wird zunächst Teile des Buches "Types and Programming Languages" von Benjamin C. Pierce besprechen. Es ist in der Fakultäsbibliothek verfügbar. Darüberhinaus sollen aktuelle Publikationen auf dem Gebiet der Typtheorie vorgestellt werden.
[1] | Pierce, Benjamin C.. Types and Programming Languages |
[2] | Tofte, Mads and Talpin, Jean-Pierre. Implementation of the typed call-by-value λ-calculus using a stack of regions, url |
[3] | Talpin, Jean-Pierre and Jouvelot, Pierre. The Type and Effect Discipline, url |
[4] | Rondon, Patrick M. and Kawaguci, Ming and Jhala, Ranjit. Liquid Types, url |
[5] | Tobin-Hochstatd, Sam and Felleisen, Matthias. The Design and Implementation of Typed Scheme, url |
[6] | Smith, Geoffrey. Principles of Secure Information Flow Analysis, url |
[7] | Denning, Dorothy E.. A Lattice Model of Secure Information Flow, url |
[8] | Swamy, Nikhil and Corcoran, Brian J. and Hicks, Michael. Fable: A Language for Enforcing User-defined Security Policies, url |
[9] | Pottier, François and Protzenko, Jonathan. Programming with Permissions in Mezzo, url |