SubjectsSubjects(version: 901)
Course, academic year 2021/2022
Practical Dynamic Compilation - NSWI176
Title: Dynamický překlad prakticky
Guaranteed by: Department of Distributed and Dependable Systems (32-KDSS)
Faculty: Faculty of Mathematics and Physics
Actual: from 2019
Semester: summer
E-Credits: 2
Hours per week, examination: summer s.:0/2 C [hours/week]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: taught
Language: Czech, English
Teaching methods: full-time
Additional information:
Guarantor: doc. Ing. Lubomír Bulej, Ph.D.
Class: Informatika Mgr. - volitelný
Classification: Informatics > Informatics, Software Applications, Computer Graphics and Geometry, Database Systems, Didactics of Informatics, Discrete Mathematics, External Subjects, General Subjects, Computer and Formal Linguistics, Optimalization, Programming, Software Engineering, Theoretical Computer Science
Annotation -
Last update: doc. RNDr. Petr Hnětynka, Ph.D. (04.02.2019)
Dynamic compilation is a mechanism used by modern programming language implementations such as Java or Python to optimize running applications. The goal of the seminar is to introduce students to the advantages and pitfalls of dynamic compilation. The seminar will focus on practical work with GraalVM.
Literature -
Last update: doc. RNDr. Petr Hnětynka, Ph.D. (04.02.2019)

Thomas Würthinger, Christian Wimmer, Christian Humer, Andreas Wöß, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, and Matthias Grimmer. 2017. 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, 662-676. DOI:

Matthias Grimmer, Chris Seaton, Roland Schatz, Thomas Würthinger, and Hanspeter Mössenböck. 2015. 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, 78-90. DOI=

Syllabus -
Last update: doc. RNDr. Petr Hnětynka, Ph.D. (04.02.2019)

1. GraalVM architecture.

2. Graal compiler, IGV. AOT vs JIT.

3. JVM, language interoperability.

4. Debugging, profiling, code coverage, language server protocol.

5. Static languages, LLVM.

6. Real language overview.

Charles University | Information system of Charles University |