Objectives and Content
The course gives an introduction to the design and implementation of a compiler, with emphasis on principles and techniques for program analysis and translation. The course also gives an overview of tools for compiler construction. Emphasis is on a semester project which gives practical experience in use of such tools where analysis of structured input is required, e.g. interpretation of commands in an operative system, queries in a database system, pattern matching in text strings, and developing compilers for programming languages for specific purposes.
After completing the course INF225, the student shall be able to
- define and use important concepts such as languages, grammars, syntax trees, dependencies, symbol tables and typical internal representations,
- discuss common code analysis techniques and the principles of compiler organisation,
- use modern tools for source code analysis and manipulation
- implement code analysis and manipulation tools based on a simple language description
Required Previous Knowledge
At least 60 ECTS in computer science, preferably including some mathematics
Recommended Previous Knowledge
INF121 (Programming paradigms), MNF130 (Discrete structures)
Compulsory Assignments and Attendance
Obligatory activities are valid for two semesters.
Forms of Assessment
Oral exam. If the course has many participants, there can be written exam (3 hours). It is opportunity for grades on exercises, which can be included in the final grade.
No aids allowed.
The grading scale used is A to F. Grade A is the highest passing grade in the grading scale, grade F is a fail.
I 125: 10 ECTS
Type of assessment: Oral examination
- Withdrawal deadline