PA037 Compiler Project

Faculty of Informatics
Autumn 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 Fri 22. 11. Mon 10:00–12:50 C525, Mon 25. 11. to Mon 16. 12. Mon 10:00–12:50 S215
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.
The course is also listed under the following terms Spring 2003, Spring 2004, Spring 2005, Spring 2006, Spring 2007, Spring 2008, Spring 2009, Spring 2010, Spring 2011, Spring 2012, Spring 2013, Spring 2014, Spring 2015, Spring 2016, Spring 2017, Spring 2018, Spring 2019, Spring 2020, Spring 2021, Spring 2022, Spring 2023, Spring 2024.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2024/PA037