FI:PA037 Compiler Project - Course Information
PA037 Compiler Project
Faculty of InformaticsSpring 2020
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- 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 - 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
- Image Processing and Analysis (programme FI, N-VIZ)
- Applied Informatics (programme FI, N-AP)
- Information Technology Security (eng.) (programme FI, N-IN)
- Information Technology Security (programme FI, N-IN)
- Bioinformatics and systems biology (programme FI, N-UIZD)
- Bioinformatics (programme FI, N-AP)
- Computer Games Development (programme FI, N-VIZ_A)
- Computer Graphics and Visualisation (programme FI, N-VIZ_A)
- Computer Networks and Communications (programme FI, N-PSKB_A)
- Cybersecurity Management (programme FI, N-RSSS_A)
- Formal analysis of computer systems (programme FI, N-TEI)
- Graphic design (programme FI, N-VIZ)
- Graphic Design (programme FI, N-VIZ_A)
- Hardware Systems (programme FI, N-PSKB_A)
- Hardware systems (programme FI, N-PSKB)
- Image Processing and Analysis (programme FI, N-VIZ_A)
- Information security (programme FI, N-PSKB)
- Information Systems (programme FI, N-IN)
- Informatics (programme FI, M-IN)
- Informatics (programme FI, N-IN)
- Information Security (programme FI, N-PSKB_A)
- Quantum and Other Nonclassical Computational Models (programme FI, N-TEI)
- Parallel and Distributed Systems (programme FI, N-IN)
- Computer graphics and visualisation (programme FI, N-VIZ)
- Computer Graphics (programme FI, N-IN)
- Computer Networks and Communication (programme FI, N-IN)
- Computer Networks and Communications (programme FI, N-PSKB)
- Computer Systems (programme FI, N-IN)
- Principles of programming languages (programme FI, N-TEI)
- Embedded Systems (eng.) (programme FI, N-IN)
- Embedded Systems (programme FI, N-IN)
- Cybersecurity management (programme FI, N-RSSS)
- Services development management (programme FI, N-RSSS)
- Software Systems Development Management (programme FI, N-RSSS)
- Services Development Management (programme FI, N-RSSS_A)
- Service Science, Management and Engineering (eng.) (programme FI, N-AP)
- Service Science, Management and Engineering (programme FI, N-AP)
- Social Informatics (programme FI, B-AP)
- Software Systems Development Management (programme FI, N-RSSS_A)
- Software Systems (programme FI, N-PSKB_A)
- Software systems (programme FI, N-PSKB)
- Machine learning and artificial intelligence (programme FI, N-UIZD)
- Theoretical Informatics (programme FI, N-IN)
- Upper Secondary School Teacher Training in Informatics (programme FI, M-SS)
- Upper Secondary School Teacher Training in Informatics (programme FI, M-TV)
- Upper Secondary School Teacher Training in Informatics (programme FI, N-SS) (2)
- Artificial Intelligence and Natural Language Processing (programme FI, N-IN)
- Computer Games Development (programme FI, N-VIZ)
- Processing and analysis of large-scale data (programme FI, N-UIZD)
- Image Processing (programme FI, N-AP)
- Natural language processing (programme FI, N-UIZD)
- 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 taught: every week.
- Enrolment Statistics (Spring 2020, recent)
- Permalink: https://is.muni.cz/course/fi/spring2020/PA037