Compilers, spring 2025 (5 cr)
This course will show you hands-on how to build a simple compiler from start to finish, and prepare you to work on compilers independently.
Enjoy!
Course structure
The course is graded entirely on a project where you create a complete compiler for a simple programming language. Your compiler is graded using automated tests combined with manual inspections. The project page has all the details.
Chapters 0-7 will guide you in completing the mandatory part of the project. The tasks in chapters 2-7 properly will help you build a compiler that passes the course. There are also some optional exercises to reinforce your understanding.
For grade 5, you also need to complete some extra tasks on the project page.
Chapter 8 is a bonus chapter that you may find interesting. It has no effect on your grade.
This course is light on theory and heavy on practical programming.
It’s a good idea to start the project without delay!
The project’s deadline is March 17, 23:59:59.
AI policy
It is not allowed to use ChatGPT, Copilot and similar AI systems for code generation. You may ask them theory questions if you want, but don’t give them your code to debug or explain, and don’t take any code from them.
The reason is that AI tools would rob you of valuable practice in writing, debugging and understanding code. They also frequently make mistakes, lead you down undesirable paths, and have trouble understanding the big picture.
Workshops
There are workshop sessions on
- Tuesdays 18-20 in Exactum B121
- Fridays 12-14 in Exactum B222
All sessions are workshops where you can work on the course project, ask questions, or just chat about compilers or software development in general.
Participation at least once a week is recommended but optional.
While this website alone should have everything needed to successfully complete the project, Lecture videos from 2024 are available as supplemental material on the studies.helsinki.fi course page (for registered participants only). This year’s intro lecture of 14.1.2025 can also be found there.
Contact
- Discord
- If you’re unfamiliar with Discord, see these detailed instructions
- Otherwise, here’s the invite link and then
/join compilers
- Please use the course-specific channel
#compilers_general
instead of the general chat channel. - Private messages are OK, but prefer asking technical questions on the channel: you’re likely to get an answer faster, and others students might benefit from seeing the question.
- Instructor e-mail: martin.partel@helsinki.fi (English and Finnish equally OK)