Skip to the content.

General Course Information

Instructor: Lionel Parreaux

This course is centered on the theory and practice of designing compilers for general-purpose programming languages. In the projects, you will individually implement each part of a compiler for Amy, our toy language. Then, in a group project, you will implement an additional Amy feature of your choice. A final exam will be held to test your acquisition of the more theoretical knowledge, which you should have practiced during tutorial sessions.

This course can be used to fulfill COMP elective credits in the Software and Database area.

Resources

Lab/project resources

Teaching Staff

Instructor

Lionel Parreaux (parreaux@ust.hk)

Teaching Assistants

Office Hours

It is best if you can contact us in advance if you plan to come by, as we may not be physically present at our desks at all times during the week.

Schedule

TBA

Resources for Learning Scala

The Scala 3 Online Book

https://docs.scala-lang.org/scala3/book/introduction.html

Grading Scheme

Letter grade

Syllabus

Here are the general topics that this course will cover:

Policy for GenAI in Assessments

We generally do not allow the use of generative AI tools in this course. However, the use of inline code suggestions through tools like Copilot is permitted.

Reference Material

There are several standard textbooks for compilers, but we do not really follow any of them.

This is also a nice

Much of the lecture, tutorial, and labs material was reused from Viktor Kuncak’s course from EPFL, with his approval. Other important contributors to this material are Georg Schmid and Romain Edelmann.