Uni-Logo

Seminar: Types and Programming Languages

LeitungProf. Dr. Peter Thiemann
Zeit und OrtSR 00-019, Geb. 079
MitwirkungMatthias 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:

DatumThema
29.04.2014Kick-Off Meeting/ Types and Programming Languages [1]
06.05.2014Types and Programming Languages [1] Folien dazu
13.05.2014Types and Programming Languages [1] Cardelli's Type Systems paper
04.07.2014Abgabe Schriftliche Ausarbeitung (Entwurf)
11.07.2014Abgabe Review
25.07.2014Abgabe Folien / Abgabe Schriftliche Ausarbeitung (Final)
30.07.2014Vortrag

In der Sitzung am 13.05.2014 werden die Vortragsthemen verteilt. Die Vorträge der Seminarteilnehmer werden am Ende des Semesters stattfinden.

Vortragstermine

DatumVortragenderThema

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

ThemaStudentBetreuer
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 SaffrichMatthias Keil
Type Reconstruction [1] (Kapitel 22, Type Reconstruction)
Universal Types [1] (Kapitel 23, Universal Types)Sven StrüttRobert Jakob
Existential Types [1] (Kapitel 24, Existential Types)
Region-based Type Systems [2],[3]Christopher DilloLuminous 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 ZhangMatthias Keil
Fable: A Language for Enforcing User-defined Security Policies [8]
Programming with Permissions in Mezzo [9]Carl KüstersLuminous 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