FI:PA037 Compiler Project - Course Information
PA037 Compiler Project
Faculty of InformaticsAutumn 2024
- Extent and Intensity
- 1/2/1. 4 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
In-person direct teaching - Teacher(s)
- prof. RNDr. Antonín Kučera, Ph.D. (lecturer)
- Guaranteed by
- prof. RNDr. Antonín Kučera, Ph.D.
Department of Computer Science – Faculty of Informatics
Contact Person: prof. RNDr. Antonín Kučera, Ph.D.
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Mon 23. 9. to Mon 16. 12. Mon 10:00–12:50 C525
- Prerequisites
- PA008 Compiler Construction
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- fields of study / plans the course is directly associated with
- there are 29 fields of study the course is directly associated with, display
- Course objectives
- The aim of the seminar is to provide students with a deeper
knowledge about the structure of programming languages
and the funcionality of the corresponding compilers.
To pass this seminar, students have to design a simple
programming language and implement its compiler.
It is possible to work in groups of 2-4 members; the
complexity of the project should be proportional to the
number of group members.
Main objectives of the course can be summarized as follows: to understand basic design principles of programming languages and their compilers; to design a simple programming language and implement its compiler. - Learning outcomes
- Own experience with implementation of a compiler.
- Syllabus
- The logical structure of a compiler. Formalisms used to specify the individual modules.
- The scanner. Regular expressions. Tokens and their precedence.
- The parser. Top-down and bottom-up analysis.
- The constrainer. Attribute grammars. Attribute flow. Attribute evaluation.
- The code generator, optimisations.
- A complete specification of a simple one-pass optimising compiler.
- Symbol tables as attributes. Declarations, type checking, scope analysis.
- Functions. Stack frames. Passing of parameters. Conventions of C and Pascal.
- Input and Output. Unix and the C language.
- I386 assembler, conventions of the C language.
- Literature
- WILHELM, Reinhard and Dieter MAURER. Compiler design. Wokingham: Addison-Wesley Publishing Company, 1995, xv, 606 s. ISBN 0-201-42290-5. info
- FISCHER, Charles N. and Richard J. LEBLANC. Crafting a compiler. Menlo Park: Benjamin/Cummings Publishing Company, 1988, 811 s. ISBN 0-8053-3201-4. info
- AHO, Alfred V., Ravi SETHI and Jeffrey D. ULLMAN. Compilers, principles, techniques, and tools. Reading: Addison-Wesley Publishing Company, 1987, x, 796 s. ISBN 0-201-10088-6. info
- Teaching methods
- Lectures, tutorials, project.
- Assessment methods
- Seminars and a group project.
- Language of instruction
- Czech
- Further Comments
- Study Materials
The course is taught annually.
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2024/PA037