Virtuelle Ausführungsumgebungen (Sommersemester 2019)
Lecturer:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
,
Tobias Pape
(Software-Architekturen)
,
Fabio Niephaus
(Software-Architekturen)
,
Tim Felgentreff
(Software-Architekturen)
General Information
- Weekly Hours: 4
- Credits: 6
- Graded:
yes
- Enrolment Deadline: 26.04.2019
- Teaching Form: Lecture
- Enrolment Type: Compulsory Elective Module
- Course Language: German
Programs, Module Groups & Modules
- IT-Systems Engineering
- IT-Systems Engineering
- IT-Systems Engineering
- IT-Systems Engineering
- OSIS: Operating Systems & Information Systems Technology
- HPI-OSIS-K Konzepte und Methoden
- OSIS: Operating Systems & Information Systems Technology
- HPI-OSIS-S Spezialisierung
- OSIS: Operating Systems & Information Systems Technology
- HPI-OSIS-T Techniken und Werkzeuge
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-K Konzepte und Methoden
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-S Spezialisierung
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-T Techniken und Werkzeuge
- SCAL: Scalable Data Systems
- HPI-SCAL-K Konzepte und Methode
- SCAL: Scalable Data Systems
- HPI-SCAL-T echniken und Werkzeuge
- SCAL: Scalable Data Systems
- HPI-SCAL-S Spezialisierung
Description
Virtuelle Ausführungsumgebungen bilden als Abstraktions-, und Portabilitäts- und Optimierungsgrundlage den Kern vieler Programmiersprachenimplementierungen, so als einfacher Interpreter, Virtuelle Maschine (VM) oder Managed Runtime.
In dieser eigene Softwarefamilie existieren über die Ausführungskonzepte (z.B. Interpreter und just-in-time compiler (JIT)) hinaus besondere Anforderungen an 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 der Vorlesung ist die Vermittlung von Architekturen Virtueller Ausführungsumgebungen, der Umsetzung ihrer Komponenten, und die Auseinandersetzung mit aktueller Literatur zu diesem Thema.
Requirements
- vertiefte Programmierkenntnisse
- von Vorteil sind Kenntnisse in:
- Python
- Java
- Squeak/Smalltalk
- C++/Assembler
Literature
- 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 zum Literaturstudium und in der Vorlesung themenspezifisch erweitert.
Learning
Vorlesung
Examination
Die Leistung wird durch Klausur und Projekt erbracht.
Beide Teile sind mit 50 % gewichtet; sie werden mit insgesamt 6 benoteten Leistungspunkten angerechnet. Zur erfolgreichen Teilnahme an der Lehrveranstaltung müssen beide Teile mit jeweils mindestens 4,0 benotet worden sein.
Klausur
Die Klausur ist eine schriftliche Prüfung von 90 Minuten Dauer.
Projekt
Die Projektleistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas in Gruppen erbracht. Zur Erlangung der sechs benoteten Leistungspunkte sind die folgenden Anforderungen zu erfüllen:
- Regelmäßige Anwesenheit in der Vorlesung bzw. beim Treffen mit den Projektbetreuern
- 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.
Dates
Klausur
Zurück