IN5630 – Programming Language Implementation and Formalisation
Course description
Course content
Learning outcome
After completion of the course, the student have learned to:
- Use program structuring principles and design patterns, such as monads, for structuring the code with a clear separation of concerns.
- Use a monadic parser combinator library to write a parser for a medium-sized language with a given grammar, including changing the grammar so that it is on an appropriate form.
- Read and write specifications of formal systems relating to programming language theory.
- Decide and prove properties of programs or program fragments.
- Decide and prove properties of programming languages or particular language features.
- Design and implement simple domain-specific programming languages
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
It is an advantage to have a basic understanding of functional programming and formal reasoning. IN3040 introduces some of the aspects (functional programming and higher-order functions) that are used in this course. IN3070 works with formal reasoning for a logic model that is useful for working with deduction systems.
Overlapping courses
- 10 credits overlap with IN9630 – Programming Language Implementation and Formalisation.
Teaching
2 hours of lecturing and 2 hours of exercises per week.
Submission of mandatory assignments is required. Read more about requirements for submission of assignments, group work and legal cooperation under guidelines for mandatory assignments.
Examination
2 home exams during the semester that each counts 25% and an oral exam that counts 50% of the final grade.
All parts must be passed and they must be passed in the same semester.
Mandatory assignments must be approved prior to 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: IN9630 – Programming Language Implementation and Formalisation
Grading scale
More about examinations at UiO
- Use of sources and citations
- How to use AI as a student
- 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.