Compiler Design - NSWI109
Title: Konstrukce překladačů
Guaranteed by: Department of Software Engineering (32-KSI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2023 to 2023
Semester: summer
E-Credits: 4
Hours per week, examination: summer s.:2/1, C+Ex [HT]
Capacity: unlimited
Min. number of students: unlimited
4EU+: no
Virtual mobility / capacity: no
Key competences: critical thinking
State of the course: taught
Language: Czech
Teaching methods: full-time
Teaching methods: full-time
Additional information: https://www.ksi.mff.cuni.cz/teaching/nswi109-web/
Guarantor: RNDr. David Bednárek, Ph.D.
Class: Informatika Mgr. - Softwarové systémy
Classification: Informatics > Software Engineering
Is pre-requisite for: NSWI091
Opinion survey results   Examination dates   SS schedule   Noticeboard   
Annotation -
Last update: T_KSI (13.05.2012)
Compiler back-ends. Architecture, intermediate representation, basic algorithms of code generation and optimization. Modern processor features. Interaction between the programmer and the compiler in code optimization.
Course completion requirements -
Last update: RNDr. David Bednárek, Ph.D. (07.06.2019)

Credits are awarded for successfully passing a written test and an oral exam.

Literature - Czech
Last update: T_KSI (23.05.2008)

Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools (2nd Edition), Addison Wesley (2006), ISBN 978-0321486813

Steven Muchnick: Advanced Compiler Design and Implementation, Morgan Kaufmann (1997) , ISBN 978-1558603202

Randy Allen, Ken Kennedy, Optimizing Compilers for Modern Architectures: A Dependence-based Approach, Morgan Kaufmann (2001), ISBN: 978-1558602861

D. Grune, H. Bal, C. Jacobs, K. Langendoen, Modern Compiler Design, Wiley (2000), ISBN 978-0471976974

Syllabus -
Last update: T_KSI (23.05.2008)

Back-end architecture.

High-, medium-, and low-level intermediate representation.

Routines, basic blocks, control-flow, data-flow.

Sequential, semi-sequential, and non-sequential intermediate code, SSA.

Variable live-range, detection algorithm.

Register allocation by graph coloring.

Instruction selection.

Scheduling, list scheduling, trace scheduling.

Software pipelining, modulo scheduling.

Vectorization.

Overview of other optimization methods.