UofT ECE 467 (2020 Fall)

Welcome to the ECE 467 labs homepage for 2020 Fall. See here for the latest version of the course.

Navigation


Important Dates

As you can see, the bulk of the credit is in lab 4; labs 1-2 are particularly straightforward, and should not require more than a week each. Lab 4 is also where the most interesting and valuable stuff happens. Therefore, while these are the official deadlines, we recommend that you work ahead so you have more time for Lab 4.


Lab Description

You will be building a compiler for a (small) subset of C. You will learn about lexers through Flex, LR parsers through GNU Bison, and SSA/code generation through LLVM. The starter code and labs try to be general rather than ad-hoc, so you should be able to easily extend your compiler to handle new language features as you desire.

Throughout this lab, depending on how much you choose to do, you will learn about and gain experience with many skills, including ones beyond the scope of compiler construction:

As stated previously, these labs is designed so that you may continue to build on it; it is not a completely arbitrary assignment without much practical use. Therefore, the amount you can learn from it is bounded only by your own time and effort.

I hope we have made these labs interesting and enjoyable for you.