IN5380 – Compiler Construction
Course description
Course content
This course covers principles and techniques central for compilation and spanning all phases of conventional compilers. That includes syntatic and semantic analysis, how to organize data at run-time and code generation.
Learning outcome
After completing the course:
- you will have gained insight into established techiques and principles underlying compilers, and based on that you will be able to implement a small compiler covering central phases of a compiler.
- you can implement the syntactic phase of a compiler (lexing and parsing), with regular expressions and context-free grammars foundation, and with standard tools like lex and yacc.
- you will have learned crucial basic techniques for later phases of a compiler, including type checking, register usage, and code generation, and will have implemented a code generator with a byte-code as target output.
- by learning how a compiler concretely deals with different linguistic aspects (for instance, parameter passing, scopes, memory management at run-time) you will have gained a deeper understanding of different kinds programming languages of different kinds (procedural, object-oriented, or functional).
Admission to the course
Students admitted at UiO must?apply for courses?in Studentweb. Students enrolled in other Master's Degree Programmes can, on application, be admitted to the course if this is cleared by their own study programme.
If you are not already enrolled as a student at UiO, please see our information about?admission requirements and procedures for international applicants.
Recommended previous knowledge
IN2010 – Algorithms and Data Structures and IN3040 – Programming Languages
Overlapping courses
- 10 credits overlap with INF5110 – Kompilatorteknikk (continued).
- 10 credits overlap with INF9110 – Kompilatorteknikk (discontinued).
- 9 credits overlap with INF310.
Teaching
4 hours of lectures per week.
Submission of compulsory assignments is required.?Read more about requirements for submission of assignments, group work and legal cooperation under guidelines for mandatory assignments.
Examination
Oral or written exam depending in the number of enrolled.
All mandatory assignments must be approved to be allowed to take the exam.
It will also be counted as one of?your three?attempts to sit the exam for this course, if you sit the exam for one of the following courses:?INF5110 – Kompilatorteknikk (continued), INF9110 – Kompilatorteknikk (discontinued), INF310/IN310
Examination support material
All written and printed (for written exam).
Grading scale
Grades are awarded on a scale from A to F, where A is the best grade and F?is a fail. Read more about?the grading system.
More about examinations at UiO
- Use of sources and citations
- Special exam arrangements due to individual needs
- Withdrawal from an exam
- Illness at exams / postponed exams
- Explanation of grades and appeals
- Resitting an exam
- Cheating/attempted cheating
You will find further guides and resources at the web page on examinations at UiO.