Welcome to Computer Science 450, the senior capstone course on compilers!

As the title implies, the subject of this course is the design and implementation of compilers. However, the objectives of the course reach far beyond merely learning about compilers and the compiling process. This is one of the last courses seniors in computer science take before embarking upon a career; as such, one of the expected outcomes of this course is that students gain confidence in their preparedness and abilities as they enter the world of work.

You will be required to design and write a large program as a team effort in this course. For some of you, this may be the first, truly large program you have written. The parts you design and write will need to mesh with those of your teammates, perhaps another first in your experience. When you are done with this project you will have the thrill and satisfaction of watching your work come together in a functioning program.

Along the way you will be reaching into the toolbox of knowledge and practice to integrate and apply virtually everything you have been learning during the past four years of your stay at MSU: programming languages, program design and implementation techniques, data structures, algorithms, time complexity, discrete math, machine language and architecture, theory of computing, operating systems. It all comes together in the design and implementation of a compiler. That's why we call this a capstone course.

We hope you enjoy it!