SubjectsSubjects(version: 941)
Course, academic year 2023/2024
   Login via CAS
Compiler Design - NSWI002
Title: Konstrukce překladačů
Guaranteed by: Department of Software Engineering (32-KSI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2005
Semester: winter
E-Credits: 9
Hours per week, examination: winter s.:2/2, C [HT]
summer s.:2/0, Ex [HT]
Capacity: unlimited
Min. number of students: unlimited
Virtual mobility / capacity: no
State of the course: cancelled
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
Pre-requisite : NSWI003, NTIN013
Annotation -
Last update: T_KSI (07.05.2004)
Lexical and syntax analysis of artificial languages, semantics analysis of procedural programming languages. Translation of procedural programming languages. Semantics analysis, intermediate code, code generation, optimization.
Literature - Czech
Last update: T_KSI (06.05.2004)

Aho, Sethi, Ullman: Compilers - Principles, Techniques and Tools, Addison-Wesley 1986

Chytil M.: Automaty a gramatiky, SNTL 1984

Melichar B.: Konstrukce překladačů. ČVUT 1999

Deransart, Jourdan, Lorho: Attribute grammars: definitions, systems and bibliography, Springer 1998

Muchnick, S.: Advanced Compiler Design and Implementation, Morgan Kaufmann 1997

Grune, Bal, Jacobs, Langendoen: Modern Compiler Design, Wiley 2000

Syllabus -
Last update: T_KSI (07.05.2004)

Compilers of programming languages, compiler structure.

Lexical analysis: Finite automata, automatized constructions, flex.


Top-down parsers - strong and weak LL(k). Extensions to regular right parts.

Bottom-up parsers - LR(k), LALR(k), SLR(k), bison.

Tree representation of input text: Derivation and abstract tree.

Embedding semantics actions to syntax analysis.

Attribute grammars: Definition, classification, simple left-to-right k-pass grammars.

Memory strustures of a compiler of a procedural language: Table types, organization and examples of implementation.

Compiler structure.

The role of intermediate code, the nature of information carried, artefacts contained in intermediate code.

Object representation, variables, temporaries, memory, aliasing.

Procedure representation, control-flow, data-flow, basic blocks, live ranges.

Intermediate code formats: Triples, quadruples, tree, DAG, SSA.

Intermediate code generation, translation of expressions and program structures.

Calling conventions, implementation of languages with nested procedures.

Register allocation.

Key features of modern processors, code generation, scheduling.

Charles University | Information system of Charles University |