Polyglot Programming (Sommersemester 2019)
Lecturer: Prof. Dr. Robert Hirschfeld
- Weekly Hours: 4
- Credits: 6
- Enrolment Deadline: 26.04.2019
- Teaching Form: Project / Seminar
- Enrolment Type: Compulsory Elective Module
- Course Language: English
Programs & Modules
- SCAL-Konzepte und Methode
- SCAL-Techniken und Werkzeuge
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:
- 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, Robert Hirschfeld, Jens Lincke. 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>), Genoa, Italy, April 1, 2019.
- 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, 187–204.
- GraalVM 1.0 Documentation, 2019. http://www.graalvm.org/docs/
The grading will be based on:
- Participation in discussions (20%)
- Mid-term presentation (20%)
- Final presentation (20%)
- Project work and implementation (40%)
The preliminary schedule is as follows:
|9. April 2019 ||Introduction and project proposal presentations |
|11. April 2019 ||Project proposal discussions |
|16. April 2019 ||Introduction to GraalVM |
|18. April 2019 ||Polyglot API |
| ||... |
|21. May 2019 ||Mid-term presentations |
|23. May 2019 ||Mid-term presentations |
| ||... |
|9. July 2019 ||Final presentations |
|11. July 2019 ||Final presentations |
| || |