Compiler Construction
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BIE-CCN | Z,ZK | 5 | 3P | English |
- Course guarantor:
- Christoph Kirsch
- Lecturer:
- Christoph Kirsch
- Tutor:
- Christoph Kirsch
- Supervisor:
- Department of Theoretical Computer Science
- Synopsis:
-
This is an introductory class on compiler construction for bachelor students in computer science. The goal of the class is to introduce basic principles of compilers for students to understand the design and implementation of programming languages. Seeing and actually understanding self-compilation is the overarching theme of the class.
- Requirements:
-
Basic programming skills.
- Syllabus of lectures:
-
Selfie
Language
Programming Language
Machine Code
Formal Grammar
Machine
Model
Processor
Memory
Input/Output
Instructions
Emulation
Compiler
Scanning
Parsing
Code Generation
Operators
Arrays
Structs
Loops
Conditionals
Procedures
Linking
Bootstrapping
- Syllabus of tutorials:
- Study Objective:
-
After taking the class, students are able to understand the difference between syntax and semantics of a programming language, how syntax is specified and efficiently checked, how semantics is efficiently implemented through code generation, and finally how a compiler that compiles itself is bootstrapped.
- Study materials:
- Note:
- Further information:
- https://courses.fit.cvut.cz/BIE-CCN/
- Time-table for winter semester 2024/2025:
- Time-table is not available yet
- Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Bachelor branch Security and Information Technology, in English, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Software Engineering, in English, 2015-2020 (elective course)
- Bachelor branch Computer Science, in English, 2015-2020 (elective course)
- Bachelor Specialization Computer Engineering, 2021 (elective course)
- Bachelor Specialization, Information Security, 2021 (elective course)
- Bachelor Specialization, Software Engineering, 2021 (elective course)
- Bachelor Specialization, Computer Science, 2021 (elective course)
- Bachelor Specialization, Computer Networks and Internet, 2021 (elective course)
- Bachelor Specialization Computer Systems and Virtualization, 2021 (elective course)
- Study plan for Ukrainian refugees (elective course)
- Bachelor branch Computer Science, in English, 2015-2020 original version (elective course)
- Bachelor Specialization, Computer Engineering, Version 2024 (elective course)