Overview
摘要
After a short history of programming languages and compilers, this chapter provides an overview of the phases and components of a compiler, explains the differences between single-pass and multi-pass compilers as well as between compilers and interpreters. It also introduces grammars and their terminology as well as important concepts such as recursion, syntax trees, and ambiguity. It finally sketches the programming language MicroJava for which a compiler will be developed in this book.