Code Generators
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
NI-GEN | Z,ZK | 5 | 2P+1C | Czech |
- Course guarantor:
- Jan Janoušek
- Lecturer:
- Petr Máj
- Tutor:
- Petr Máj
- Supervisor:
- Department of Theoretical Computer Science
- Synopsis:
-
Advanced techniques of translating programs written in high-level programming languages are essential for understanding the field of systems programming. This primarily involves understanding the algorithms and techniques used to translate more complex programming constructs of modern languages employed in systems programming. Students will become familiar with both the theoretical and practical aspects of implementing the back-end of optimizing compilers for programming languages.
- Requirements:
-
Principles of parsing and translation, graph algorithms.
- Syllabus of lectures:
-
1. Compiler Architecture
2. Translation of Basic Programming Language Constructs
3. Intermediate Representation
4. Syntax-Directed Translation
5. Translation of Object-Oriented Constructs
6. Exception Handling Translation
7. Optimization of Generated Code
8. Compile-Time Optimization
9. Compiler Back-End: Instruction Selection and Scheduling, Code Layout
10. Compiler Back-End: Register Allocation and Code Generation
11. Case Study: LLVM Compiler
12. JIT Compilation (Speculative Execution, Multi-Tier Architectures, Runtime Support)
- Syllabus of tutorials:
- Study Objective:
-
The aim of the module is to complete the education in the field of compiling and compilers. Basic principles of compiler back-end construction, optimization and generation of code are explained.
- Study materials:
-
1. Aho, A. V. - Lam, M. S. - Sethi, R. - Ullman, J. D. : Compilers: Principles, Techniques, and Tools (2nd Edition). Addison-Wesley, 2006. ISBN 0321486811.
2. Muchnick, S. : Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997. ISBN 1558603204.
3. Grune, D. - van Reeuwijk, K. - Bal, H.E. - Jacobs, C.J.H. - Langendoen, K. : Modern Compiler Design (2nd Edition). Springer, 2012. ISBN 1461446988.
- Note:
- Further information:
- https://courses.fit.cvut.cz/NI-GEN/
- Time-table for winter semester 2025/2026:
- Time-table is not available yet
- Time-table for summer semester 2025/2026:
- Time-table is not available yet
- 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)