SubjectsSubjects(version: 941)
Course, academic year 2022/2023
   Login via CAS
Compiler Design - NSWI109
Title: Konstrukce překladačů
Guaranteed by: Department of Software Engineering (32-KSI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2019
Semester: summer
E-Credits: 4
Hours per week, examination: summer s.:2/1, C+Ex [HT]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: taught
Language: Czech
Teaching methods: full-time
Teaching methods: full-time
Additional information:
Guarantor: RNDr. David Bednárek, Ph.D.
Class: Informatika Mgr. - Softwarové systémy
Classification: Informatics > Software Engineering
Is pre-requisite for: NSWI091
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.


Overview of other optimization methods.

Charles University | Information system of Charles University |