Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2019/2020

Simple Compilers

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
01JEPR Z 2 2 Czech
Lecturer:
Tutor:
Zdeněk Čulík (guarantor)
Supervisor:
Department of Mathematics
Synopsis:

Lexical and syntax analysis, code generation, simple optimizations, development environments, reflection.

Requirements:
Syllabus of lectures:

1. Lexical and syntax analysis of programming languages (Pascal, C++, Java)

2. Data structures for representations of expressions, statements, types and declarations 3. Programs for automatic compiler generations (Lex, Yacc, ANTLR) Simple optimizations

4. Code generation

5. Principles of integrated development environments, influence of run time type identification.

6. Overview of syntax analysis and code generation in GNU Compiler Collection.

7. Other GNU programs for software development.

Syllabus of tutorials:

1. Simple lexical analysis written in C programming language

2. Semantic analysis

3. Type and declaration processing, navigation trees in used in development environments

4. Semantic analyzers generated by ANTLR program

5. Simple code generation, register allocation

6. Extension modules for GCC and LLVM/CLang compilers

Study Objective:

Knowledge:

Structure of programming language compilers, machine code generation, translation to another programming language

Skills:

To develop syntactic and semantic analysis of simple programming language using modern grammar generators.

Study materials:

[1] N. Wirth: Compiler Construction, Addison Wesley, 1996

[2] S. Pemberton, M. Daniels: Pascal Implementation: The P4 Compiler, Prentice Hall, 1983

[š] D. Grune, C. Jacobs: Parsing Techniques - A Practical Guide, Ellis Horwood, 1990

[4] http://www.antlr.org

Note:
Time-table for winter semester 2019/2020:
Time-table is not available yet
Time-table for summer semester 2019/2020:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2019-09-16
For updated information see http://bilakniha.cvut.cz/en/predmet12073305.html