This course covers advanced topics on implementation of programming languages. The topics include runtime systems, dataflow analysis, inlining, deep learning compiler, JVM, LLVM.
This lecture is held on 5 and 6 time slots (13:45-15:25) on every Monday and Thursday, starting on Dec. 8. For the detailed schedule , please check the Japanese version of syllabus. We use lecture room H116.
By the end of this course, students will understand the state-of-art technologies on implementation of programming languages.
programming language, compiler, runtime system, JVM, LLVM
✔ Specialist skills | Intercultural skills | Communication skills | ✔ Critical thinking skills | ✔ Practical and/or problem-solving skills |
Each class offers a standard type of lecture.
Course schedule | Required learning | |
---|---|---|
Class 1 | Runtime – JVM Overview & Interpreter | Understand the concepts of runtime systems |
Class 2 | Runtime – Object Management & Synchronization | Understand the concepts of object management & synchronization |
Class 3 | Runtime – Native Memory Management | Understand the basic techniques of native memory management |
Class 4 | Compiler – Overview | Understand the overall structure of compilers |
Class 5 | Compiler – Dataflow Analysis | Understand the theory and practice of dataflow analysis |
Class 6 | Compiler – Devirtualization & Inlining | Understand the basic techniques of devirtualization & inlining |
Class 7 | Hot topic – H/W Acceleration (GPGPU, HTM, FPGA) | Understand the advantages and disadvantages of H/W acceleration |
Class 8 | Hot topic – Open Source Java VM | Understand the current status and techniques of open source JVM |
Class 9 | Compiler – Trace Compilation & LLVM | Understand the techniques in trace compilation & LLVM |
Class 10 | Hot topic – Deep Learning Compiler & MLIR (given in English) | Understand the concepts of deep learning compiler & MLIR |
Class 11 | Hot topic – Compiler in Quantum Computer | Understand the role of compilers in processing quantum applications |
Class 12 | Concluding Remarks & Outlook | Understand the ongoing issues of compiler technologies |
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
Textbooks will not be used in this course.
References will be announced in classes.
This lecture is graded by two reports.
Basic knowledge on compilation of programming languages.