Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2024/2025
NOTICE: Study plans for the following academic year are available.

Code Generators

The course is not on the list Without time-table
Code Completion Credits Range Language
NIE-GEN Z,ZK 5 2P+1C English
Course guarantor:
Lecturer:
Tutor:
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:

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.

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/
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2025-04-17
For updated information see http://bilakniha.cvut.cz/en/predmet8305006.html