Code: MIE-RUN.16 Runtime Systems
Lecturer: doc. Ing. Filip Køikava Ph.D. Weekly load: 2P+1C Completion: A, EX
Department: 18101 Credits: 5 Semester: S
Description:
Student become familiar - theoretically and practically - with runtime systems and virtual machines for various programming languages.
Contents:
1. Runtime for C/C++, static vs. dynamic linking, position independent code, memory management.
2. Calling conventions, system calls, signals and exceptions.
3. Virtual machines for high-level languages: JVM, MSIL, Squeak, SELF.
4. Organization of object heap. Object table. Immediate values.
5. Memory management, basic garbage collection methods.
6. Bytecode and its interpretation.
7. Just-in-time compilations, method lookup optimizations techniques.
8. Advanced optimization techniques: inlining, custom-compilation. SELF SIC.
9. Thread implementation. Green vs. Native threads.
10. JVM: mapping of threads and synchonization primitives to OS resources.
11. Exceptions - implementation in C++, JVM, Smalltalk.
12. Security mechanisms in VMs. Verification of the bytecode. Security Manager.
13. Foreign function calls. Cross-language calls.
14. VM Bootstrap. metacircular VM.
Seminar contents:
1. TBD.
Recommended literature:
1. Smith, J., Nair, R. ''Virtual Machines: Versatile Platforms for Systems and Processes''. Morgan Kaufmann, 2005. ISBN 1558609105.

Abbreviations used:

Semester:

Mode of completion of the course:

Weekly load (hours per week):