Compiler Design Project
Syllabus, Master's level, 1DL420
This course has been discontinued.
- Code
- 1DL420
- Education cycle
- Second cycle
- Main field(s) of study and in-depth level
- Computer Science A1N, Technology A1N
- Grading system
- Pass (G), Fail (U)
- Finalised by
- The Faculty Board of Science and Technology, 12 March 2009
- Responsible department
- Department of Information Technology
Entry requirements
120 credits, of which mathematics 15 credits including Automata theory, and Computer Science 60 credits including a second course in Computer Programming, Algorithms and Data Structures, Compiler Design I and Operating systems.
Learning outcomes
To pass, the student must understand, how simple imperative programming languages equivalent to C can be compiled to machine code for RISC-like machines.
The students must specifically be able to
- structure a compiler as a sequence of distinct translation steps
- use regular languages to describe the lexical elements of a programming language
- implement lexical analysis using a finite automaton
- use context free languages to describe the syntactic structure of a programming language
- use the parsing methods top-down (recursive descent) and bottom-up (LR)
- implement abstract syntax trees to represent the results of the syntactic analysis
- use hash tables to handle information on variable bindings in languages with static and nested visibility rules
- break down statements and expressions to simpler designs, and translate syntax trees to intermediate code
- implement recursive procedure calls by means of stacks, activation posts and machine registers
- implement the translation of the simplified intermediate code of a program to machine-specific instructions
Content
The students carry out a project in which they implement a compiler from a subset of C to a RISC-machine.
The project is divided in steps, which are presented separately.
Instruction
Project.
Assessment
The course is examined by assignments within the project.
Other directives
This course cannot be included in a degree together with Compiler design DV1 (1DL117), nor with Compiler Design I (1DL021).
Reading list
No reading list found.