The situation is trying for both and unsatisfying to boot, because the compilers are still toys. By documenting most of a real compiler and providing the source code, this book offers an alternative. It exploits recent research that produces code generators from compact specifications. These methods allow us to present complete code generators for several machines, which no other books do. Presenting several code generators avoids tying the book to a single machine and helps students appreciate engineering retargetable software.
Assignments can add language features, optimizations, and targets.
When used with a traditional survey text, assignments could also replace existing modules with those using alternate algorithms. Many of the exercises pose just these kinds of engineering problems. It could also be used to experiment with language extensions, proposed computer architectures, and code generator technologies.