Virtuelle Maschinen und Ausführungsumgebungen (Wintersemester 2013/2014)
Dozent:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
,
Bastian Steinert
(Software-Architekturen)
,
Tim Felgentreff
(Software-Architekturen)
,
Tobias Pape
(Software-Architekturen)
Allgemeine Information
- Semesterwochenstunden: 4
- ECTS: 6
- Benotet:
Ja
- Einschreibefrist: 1.10.2013 - 31.10.2013
- Lehrform: SP
- Belegungsart: Wahlpflichtmodul
Studiengänge, Modulgruppen & Module
- Operating Systems & Information Systems Technology
- Software Architecture & Modeling Technology
Beschreibung
Als Abstraktions- und Portabilitätsgrundlage bilden Virtuelle Maschinen (VMs)
den Kern vieler Programmiersprachenimplementierungen. Dabei stellen sich VMs
als eigene Softwarefamilie dar, mit spezialisierten Konzepten zu Ausführung
(z.B. Interpreter und just-in-time compiler (JIT)), Speicherverwaltung (z.B.
garbage collection (GC)) oder Optimierung (z.B. polymorphic inline caches
(PIC)). Insbesondere metazirkuläre und tracing-JIT VMs bieten interessante
Forschungsgegenstände.
Das Ziel des Projektseminars ist das Verständnis von VM-Architekturen und der
Umsetzung ihrer Komponenten. Im Seminar werden die Teilnehmer in Gruppen von
3–4 Studierenden mit Hilfe von aktuellen Forschungsergebnissen ausgewählte VMs
erweitern und anpassen.
Zu den Themen zählen u.a.:
- polymorphic inline caches (PIC)
- JIT Compiler mit nanojit
- Tagging/Boxing
- VM-Benchmarking
Voraussetzungen
- vertiefte Programmierkenntnisse
- von Vorteil sind Kenntnisse in:
- Python
- Squeak/Smalltalk
- C++/Assembler
Literatur
- J. E. Smith, R. Nair, Virtual Machines. Versatile Platforms for Systems and Processes, Morgan Kaufmann, 2005.
- R. Jones, R. Lins, Garbage Collection. Algorithms for Automatic Dynamic Memory Management, Wiley, 1996.
- L. Peter Deutsch, Allan M. Schiffman. "Efficient implementation of the Smalltalk-80 system", POPL '84, ACM, 1984.
- D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, A. Kay. "Back to the future: The story of Squeak, A practical Smalltalk written in itself", OOPSLA ’97, ACM, 1997.
- C. F. Bolz, A. Cuni, M. Fijałkowski, A. Rigo. "Tracing the meta-level: PyPy's tracing JIT compiler", ICOOOLPS ’09, ACM, 2009
- C. F. Bolz, A. Kuhn, A. Lienhard, N. D. Matsakis, O. Nierstrasz, L. Renggli, A. Rigo, T. Verwaest. "Back to the future in one week — Implementing a Smalltalk VM in PyPy", S3 ’08, LNCS, Springer, 2008.
Die Literaturliste wird themenspezifisch im Seminar erweitert.
Leistungserfassung
Die Leistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas in
Gruppen von 3-4 Personen erbracht. Zur Erlangung der sechs benoteten
Leistungspunkte sind die folgenden Anforderungen zu erfüllen:
- Regelmäßige Anwesenheit im Seminar bzw. beim Treffen mit den Projektbetreuern
- Eigenständiges Studieren, Aufbereiten und Präsentieren wissenschaftlicher Arbeiten
- Bearbeitung einer gewählten Problemstellung
- Abschlusspräsentation der Projektergebnisse
Eine Woche vor der jeweiligen Abschlusspräsentation bespricht jede Gruppe die
Vorversion der Vortragsunterlagen mit einem der Betreuer. Die
Vortragsunterlagen sind einen Tag vor dem Vortrag per Email einzureichen.
Sie bestehen aus:
- den Dokumentquellen der im Vortrag verwendeten Folien,
- einer PDF-Version derselben,
- dem in der Demo verwendeten Quelltext,
- einer Installationsbeschreibung und
- einem Demo-Script
Alle im Rahmen der Veranstaltung erstellten Quelltexte sollten unter der
MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen
Lizenz bereitgestellt werden.
Termine
Erste Veranstaltung:
- Dienstag, 15.10.13, 17:00 Uhr
Themenstellung:
- Dienstag, 15.10.13, 17:00 Uhr
Themenvergabe:
- Dienstag, 22.10.13, 17:00 Uhr
Zurück