FI:PA037 Compiler Project - Course Information
PA037 Compiler ProjectFaculty of Informatics
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- prof. RNDr. Antonín Kučera, Ph.D. (lecturer)
- Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
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
- Thu 10:00–11:50 G123
- 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 22 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.
- 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.
- 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
- Further Comments
- The course is taught annually.