We will write a compiler to compile Tiger, a simple but nontrivial language of the Algol family, with nested scope and heap-allocated records. Programming exercises in each chapter call for the implementation of the corresponding phase; a student who implements all the phases described in Part I of the book will have a working compiler. Tiger is easily modified to be functional or object-oriented (or both).
Appendix A of the textbook describes the Tiger language. Sample Tiger programs can be found here.
Our compiler will generate assembly code for the ManArray SP, a simple, high-performance RISC digital signal processor by BOPS Inc. A BOPS instruction set simulator, assembler, linker and debugger will be provided.