Runtime Systems
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
NI-RUN | Z,ZK | 5 | 2P+1C | English |
- Course guarantor:
- Filip Křikava
- Lecturer:
- Filip Křikava
- Tutor:
- Filip Křikava
- Supervisor:
- Department of Theoretical Computer Science
- Synopsis:
-
This course is an introduction to the world of virtual machines (VM) for high-level programming languages. There are two goals:
Give you hands-on experience in design and implementation of a compiler and a VM from scratch, including
Abstract Syntax Tree (AST) interpretation
Byte code (BC) design and interpretation
AST to BC compilation
Memory management
Just-in-time compilation and some optimization techniques
Through a series of guest lectures, introduce you to various advanced topics and implementations of real-world VMs, including
Dynamic optimizations, speculations, and deoptimizations
Language implementation frameworks
Read-world VMs
- Requirements:
-
In this course, you will implement a compiler and a virtual machine for a simple yet non-trivial programming language. This assumes that you can effectively program in some programming language. To implement the class project, you are free to use any programming language with manual memory management, such as C/C++, Rust, or Zig. The provided project template is in C++.
- Syllabus of lectures:
-
1. Introduction to the world of VM
2. AST interpretation
3. Bytecode compilation
4. Bytecode interpretation
5. Memory management
6. Garbage collection
7. JVM ISA
8. V8 and its compilers
9. Just-in-time compilation
10. Truffle and GraalVM
11. Dynamic optimizations
12. Dynamic optimizations
- Syllabus of tutorials:
-
1. The Lox programming language
2. AST interpretation
3. Bytecode compilation
4. Bytecode interpretation
5. Memory management
6. Memory management
7. Just-in-time compilation
- Study Objective:
- Study materials:
-
1. R. Nystrom: Crafting Interpreters, Genever Benning, 2021 ASIN: B09BCCVLCL (https://www.craftinginterpreters.com/)
2. Craig, I. D. : Virtual Machines. Springer, 2005. ISBN 978-1852339692.
3. Jones, R. - Hosking, A. - Moss, E. : The Garbage Collection Handbook: The Art of Automatic Memory Management. Chapman and Hall/CRC, 2011. ISBN 978-1420082791.
- Note:
- Further information:
- https://courses.fit.cvut.cz/NI-RUN/
- Time-table for winter semester 2024/2025:
- Time-table is not available yet
- Time-table for summer semester 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Wed Thu Fri - The course is a part of the following study plans:
-
- Master specialization Computer Security, in Czech, 2020 (elective course)
- Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 202 (elective course)
- Master specialization Management Informatics, in Czech, 2020 (elective course)
- Master specialization Software Engineering, in Czech, 2020 (elective course)
- Master specialization System Programming, in Czech, version from 2020 (PS)
- Master specialization Web Engineering, in Czech, 2020 (elective course)
- Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
- Master specialization Computer Science, in Czech, 2020 (elective course)
- Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (VO)
- Master Specialization Digital Business Engineering, 2023 (VO)
- Master specialization System Programming, in Czech, version from 2023 (PS)
- Master specialization Computer Science, in Czech, 2023 (elective course)