Code Generators
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
NIE-GEN | Z,ZK | 5 | 2P+1C | anglicky |
- Garant předmětu:
- Jan Janoušek
- Přednášející:
- Petr Máj
- Cvičící:
- Petr Máj
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
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.
- Požadavky:
-
Principles of parsing and translation, graph algorithms.
- Osnova přednášek:
-
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)
- Osnova cvičení:
-
1. Revision - basic data types.
2. Revision - intermediate code and translation of basic program structures I.
3. Revision - intermediate code and translation of basic program structures II.
4. Assignment of semestral works.
5. AST -> DAG -> BB.
6. Intermediate code optimization.
7. Register allocation.
8. Instruction selection I.
9. Instruction selection II.
10. Further optimizations.
11. Consultations on semestral works.
12. Instruction scheduling and pipeling.
13. Checking semestral works.
- Cíle studia:
-
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.
- Studijní materiály:
-
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.
- Poznámka:
-
Course information and study materials can be found at: https://courses.fit.cvut.cz/NI-GEN/
- Další informace:
- https://courses.fit.cvut.cz/NI-GEN/
- Rozvrh na zimní semestr 2025/2026:
- Rozvrh není připraven
- Rozvrh na letní semestr 2025/2026:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů: