Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
 

Virtuelle Ausführungsumgebungen (Sommersemester 2019)

Dozent: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Tobias Pape (Software-Architekturen) , Fabio Niephaus (Software-Architekturen) , Tim Felgentreff (Software-Architekturen)

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 26.04.2019
  • Lehrform: Vorlesung
  • Belegungsart: Wahlpflichtmodul
  • Lehrsprache: Deutsch

Studiengänge, Modulgruppen & Module

IT-Systems Engineering MA
  • IT-Systems Engineering
    • HPI-ITSE-A Analyse
  • IT-Systems Engineering
    • HPI-ITSE-E Entwurf
  • IT-Systems Engineering
    • HPI-ITSE-K Konstruktion
  • IT-Systems Engineering
    • HPI-ITSE-M Maintenance
  • 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
Data Engineering MA

Beschreibung

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.

Voraussetzungen

  • vertiefte Programmierkenntnisse
  • von Vorteil sind Kenntnisse in:
    • Python
    • Java
    • 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 zum Literaturstudium und in der Vorlesung themenspezifisch erweitert.

Lern- und Lehrformen


Vorlesung

Leistungserfassung

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.

Termine

  • XXX

Klausur

  • XXX

Zurück