Contents: 1. Introduction. 2. Lexical analysis. 3. Syntax analysis. 4. Deterministic top-down parsing. 5. Deterministic bottom-up parsing. 6. Syntax-directed translation and intermediate code generation. 7. Optimization and target code generation.
Elements of Compiler Design maintains a balance between a theoretical and practical approach to this important subject, Elements of Compiler Design serves as an introduction to compiler writing for undergraduate students. From a theoretical viewpoint, it introduces rudimental models, such as automata and grammars, that underlie compilation and its essential phases. Based on these models, the author details the concepts, methods, and techniques employed in compiler design in a clear and easy-to-follow way. From a practical point of view, the book describes how compilation techniques are implemented. In fact, throughout the text, a case study illustrates the design of a new programming language and the construction of its compiler. While discussing various compilation techniques, the author demonstrates their implementation through this case study. In addition, the book presents many detailed examples and computer programs to emphasize the applications of the compiler algorithms.
Features: Presents the essentials of compiler writing in an easy-to-follow way so students can grasp compiler construction quickly and clearly. Includes intuitive explanations, theoretical concepts, definitions, algorithms, and compilation techniques. Examines the mathematical foundations of compiler design and related topics, such as formal languages, automata, and transducers. Demonstrates how theory and practice work together in a real-world context through the implementation of algorithms, examples, case studies, and software tools, such as lex and yacc. Contains the C++ implementation of a real compiler as well as a variety of challenging exercises, many of which are instructively solved.