Second, it shows how to apply this theory to build compilers and interpreters, as well as compiler generators. It covers the building of translators both from scratch and using compiler generators. In the process, the course also identifies and explores the main issues of the design of translators. As is the case in many computer science courses with a significant theoretical component, visualization tools can improve the quality of lectures and serve as animated lecture notes. The most useful kind of algorithm animations are those that show in a synchronized way both an operational view and a conceptual view of the algorithm steps.
Most compiler generators are tabular, which makes the resulting compiler more difficult to debug.
The severity of these problems can be reduced by using declarative scanners and parser generators that produce recursive-descent parsers. This report is a working draft and does not yet carry any endorsement from the sponsoring organizations.