Compiler Reference Material

Although this course is certainly not about compilers, I'm a big believer in the concept that you shouldn't really be using a tool until you have a basic understanding of how it works. Toward that goal, we discussed a bit about how compilers are built in class. There is no project associated with this material.

EE468 Course Notes: Introduction To Compilers And Translation Engineering (PDF)
These course notes were written by H. Dietz and used for the undergraduate compiler course at Purdue University (and about 30 other universities). We're not directly using them in EE480, but they make an easy-to-understand reference for how a simple compiler might be built.
MuCKY (MIPS uCompiler from KY)
This hand-written compiler was created explicitly for EE380 by H. Dietz. It compiles a poorly-documented little subset of C into EE380-style MIPS assembly langauge code. It does not use registers for passing things in and out of functions, and hence is not compliant with the MIPS ABI. However, the code it produces is appropriate for use with SPIM (EE380 WWW form interface) and even includes C-callable wrappers for print_string(), print_int(), and exit() OS calls.
IDIOCC (IDIOT C Compiler)
It's fragile... no, it's still broken... but here it is as full C source code. Watch the version number -- this is not yet really working, so it might change.
LDCC (loQ Don C Compiler)
It's fragile... no, it's still broken... but here it is as full C source code. Watch the version number -- this is not yet really working, so it might change.
LokickCC (Logick C Compiler)
It's fragile... no, it's still broken... but here it is as full C source code. Watch the version number -- this is not yet really working, so it might change.
This version can also be compiled as a WWW form-interfaced CGI; here you can run it via a WWW form.


EE480 Advanced Computer Architecture.