Week 2 of compiler construction

Dear IN5380-student,

Thanks for today's lecture. The topic of this week is what is going on inside the scanner. Today we covered regular expressions, and how to use Thompson's construction to produce a NFA-ε. Tomorrow, we will cover how to take a NFA-ε and convert it to a DFA. Lastly, we will cover how to produce a minimal DFA.

Exam

There will be a final oral examination (opposed to a written one). We will fix the dates soon.

Mandatory assignments

There will be a two-part mandatory assignment, where you implement a compiler:

  • You will work in groups of two or three. (You need to contact if we need to make an exception).
  • The default implementation language will be Java, and there will be pre-code that makes the implementation work easier.
  • You can use another implementation language, but it does require you to be more independent.
  • The assignments will be corrected in-person (or over a video-call, if necessary).

    These are the planned dates:

Mandatory assignmentPublishedDeadline
Part 1February 13thMarch 16th
Part 2April 7thMay 4th

The mandatory assignment will be similar what has been given before. You can take a look at what was given last year if you want to prepare (or assess what it would take to reproduce the pre-code in some other language):

https://github.uio.no/compilerconstruction-inf5110/compila25-00

Exercises

We have published exercises from previous years, with solutions (you can find them in the menu on the left of the semester page). From what I can tell, they have not been given a lot of focus in previous years, and that will probably be the case for this year as well.

Side projects in compiler construction

This spring, we invite you to do side projects in compiler construction. The idea of these side projects is to allow you to put effort into a project that is open and exploratory. We hope you will learn more from those endeavors than solely focusing on the course material (even though this of course is important as well). They will not affect your grade, and you may take the exam even though you have not done any project.

Note that the side projects is a side project itself, meaning that anything that relates to the side project is lower priority than the lectures and mandatory assignments.

There is a side project published already, and you can find it here:

https://github.uio.no/IN5380/sideprojects

Happy hacking,
Lars

Published Jan. 27, 2026 3:16 PM - Last modified Jan. 27, 2026 3:16 PM