Hasso-Plattner-InstitutSDG am HPI
Hasso-Plattner-InstitutDSG am HPI

Polyglot Programming (Sommersemester 2020)

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

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 06.04.2020-22.04.2020
  • Lehrform: Projekt / Seminar
  • Belegungsart: Wahlpflichtmodul
  • Lehrsprache: Deutsch

Studiengänge & Module

IT-Systems Engineering MA
  • OSIS-Konzepte und Methoden
  • OSIS-Techniken und Werkzeuge
  • OSIS-Spezialisierung
  • SAMT-Konzepte und Methoden
  • SAMT-Techniken und Werkzeuge
  • SAMT-Spezialisierung
Data Engineering MA


Polyglot programming is the practice of writing code in multiple programming languages, which gives software engineers a much broader choice in terms of software libraries and frameworks they can use for building applications.

In this seminar, students will explore the domain of polyglot programming with focus on the programming experience. For this, they will build novel polyglot applications for different use cases using GraalVM, a high-performance polyglot virtual machine. There will be weekly individual student project meetings (held in German or English) as well as occasional meetings with all groups during the seminar slots (held in German or English) to exchange ideas and present results.


Students should be relatively familiar with at least two of the following programming languages or technologies:

  • C, C++, Cuda, Java, JavaScript, LLVM, Python, R, Ruby, Smalltalk (in alphabetical order).


  • Fabio Niephaus, Tim Felgentreff, and Robert Hirschfeld. GraalSqueak: Toward a Smalltalk-based Tooling Platform for Polyglot Programming. In Proceedings of the International Conference on Managed Programming Languages and Runtimes (MPLR) 2019, co-located with the Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA), 12 pages, Athens, Greece, October 21, 2019, ACM DL.
    https://doi.org/10.1145/3357390.3361024 (preprint)
  • Fabio Niephaus, Tim Felgentreff, Tobias Pape, Robert Hirschfeld, and Marcel Taeumel. Live Multi-language Development and Runtime Environments. In Journal on The Art, Science, and Engineering of Programming, vol. 2, no. 3, art. 8, 30 pages, 2018.
  • Fabio Niephaus, Eva Krebs, Christian Flach, Jens Lincke, and Robert Hirschfeld. PolyJuS: A Squeak/Smalltalk-based Polyglot Notebook System for the GraalVM. In Proceedings of the Programming Experience 2019 (PX/19) Workshop, companion volume to International Conference on the Art, Science, and Engineering of Programming (‹Programming›), co-located with the International Conference on the Art, Science, and Engineering of Programming (‹Programming›), 6 pages, Genova, Italy, April 1, 2019, ACM DL.
    https://doi.org/10.1145/3328433.3328434 (preprint)
  • Matthias Grimmer, Chris Seaton, Roland Schatz, Thomas Würthinger, Hanspeter Mössenböck. High-performance cross-language interoperability in a multi-language runtime. In Proceedings of the 11th Symposium on Dynamic Languages (DLS 2015). ACM, New York, NY, USA.
  • Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, and Mario Wolczko. One VM to Rule Them All. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013). ACM, New York, NY, USA.
  • Thomas Würthinger, Christian Wimmer, Christian Humer, Andreas Wöß, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, Matthias Grimmer. Practical partial evaluation for high-performance dynamic language runtimes. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017). ACM, New York, NY, USA.
  • GraalVM 1.0 Documentation, 2019. http://www.graalvm.org/docs/

Lern- und Lehrformen

Due to the current situation, the seminar will be held online until further notice. We plan to use Zoom for meetings as well as Email and Slack for all other communications. To avoid misuse, please make sure to use your real name in Zoom and Slack. Please contact Fabio Niephaus if you have any questions.

A link to the first Zoom meeting will be published on this website before Apr 23.


The grading will be based on:

  • Participation in discussions (20%)
  • Mid-term presentation (20%)
  • Final presentation (20%)
  • Project work and implementation (40%)


The schedule is preliminary and subject to change.

23.04.2020 Introduction and project proposal presentations
30.04.2020 Project discussions and getting started
07.05.2020 Introduction to GraalVM and the Polyglot API
14.05.2020 Best practices for Polyglot Programming
04.06.2020 Mid-term presentations
23.07.2020 Final presentations
07.08.2020 Final project submission