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 assignment | Published | Deadline |
|---|---|---|
| Part 1 | February 13th | March 16th |
| Part 2 | April 7th | May 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