Code Generators
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
MIE-GEN | Z,ZK | 4 | 2+1 |
- Přednášející:
- Jan Janoušek (gar.)
- Cvičící:
- Jan Janoušek (gar.)
- Předmět zajišťuje:
- katedra teoretické informatiky
- Anotace:
-
Students will become acquainted with both theoretical and practical aspects of back-end of an optimizing programming language compiler.
- Požadavky:
-
Principles of parsing and translation, graph algorithms.
- Osnova přednášek:
-
1. Overview of constructs of programming languages.
2. Basic notions: types, variables, type compatibility and dynamic data structures.
3. Basic notions: activation record, calling conventions.
4. Internal forms.
5. Direct code generation, AST -> DAG -> BB.
6. DAG analysis, BB, dependencies and antidependencies.
7. Register allocation, memory allocation (static, on the stack).
8. Intermediate code optimization.
9. Code generator, instruction selection.
10. Translation of a stack-based language into the native HW, HW dependent optimizations.
11. Modules and separate compilation.
12. Support for debugging.
13. Code generators for object-oriented programming languages.
- 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. Wirth, N. ''Compiler Construction''. Addison-Wesley, 1996. ISBN 0201403536.
2. Aho, A. V., Lam, M. S., Sethi, R., Ullman, J. D. ''Compilers: Principles, Techniques, and Tools (2nd Edition)''. Addison Wesley, 2006. ISBN 0321486811.
- Poznámka:
-
Rozsah=prednasky+proseminare+cviceni2p+1c, Prednasejici: Ing. Jan Janoušek Ph.D.
- Rozvrh na zimní semestr 2011/2012:
- Rozvrh není připraven
- Rozvrh na letní semestr 2011/2012:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Computer Security, Presented in English, Version for Students, who Enrolled in 2010 and 2011 (povinný předmět oboru)
- System Programming, in English, Version for Students, who Enrolled in 2010 and 2011 (povinný předmět zaměření)
- Master Informatics, Presented in English - Version for Students who Enrolled in 2010 (VO)
- Master Informatics, Presented in English - Version for Students who Enrolled in 2011 (VO)
- Master Informatics, Presented in English - Version for Students who Enrolled in 2012 (VO)
- System Programming, Presented in English - Version for Students who Enrolled in 2012 (povinný předmět zaměření)