There has been significant progress in implementation techniques, dynamic compilation in particular, of programming languages for the last two decades. In particular, many implementations including Java achieve as efficient --- sometimes more efficient --- runtime performance as statically compiled implementations. The technologies behind the progress is essential not only for the research in programming language implementations, but also for using those programming languages. The lecture systematically explains the techniques in runtime systems, compilers and advanced topics in those programming languages.
The students will understand the state-of-the-art techniques of programming language implementations. They will also understand the important topics therein.
Programming language implementations
Dynamic compilation
the Java language
Just-in-Time compilers
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | Practical and/or problem-solving skills |
Each lecturer will explain for each topic.
Course schedule | Required learning | |
---|---|---|
Class 1 | Runtime --- JVM Overview & Interpreter | . |
Class 2 | Runtime --- Object Management & Synchronization | . |
Class 3 | Runtime --- Native memory management | . |
Class 4 | Compiler --- Overview | . |
Class 5 | Compiler --- Dataflow Analysis | . |
Class 6 | Compiler --- Devirtualization & Inlining | . |
Class 7 | Compiler --- Trace Compilation & LLVM | |
Class 8 | Hot topic --- Open Source Java VM | . |
Class 9 | Hot topic --- Full stack optimization | . |
Class 10 | Hot topic --- X10 | . |
Class 11 | Hot topic --- H/W acceleration (GPGPU, HTM, FPGA) | . |
Class 12 | Summary and beyond | . |
N/A
The course materials are provided online.
The students are requested to the end-of-term assignment, which answers to some of the tasks selected from the ones given at the end of each round.
The students are better to have basic knowledge on programming and programming language implementations (esp. compilers).
Hidehiko Masuhara (masuhara[at]is.titech.ac, followed by the domain name of Japan; ext. 3228)