This revised and expanded new edition elucidates the elegance and simplicity of the fundamental theory underlying formal languages and compilation. Retaining the reader-friendly style of the 1st edition, this versatile textbook describes the essential principles and methods used for defining the syntax of artificial languages, and for designing efficient parsing algorithms and syntax-directed translators with semantic attributes. Features: presents a novel conceptual approach to parsing algorithms that applies to extended BNF grammars, together with a parallel
parsing algorithm (NEW); supplies supplementary teaching tools at an associated website; systematically discusses ambiguous forms, allowing readers to avoid pitfalls; describes all algorithms in pseudocode; makes extensive usage of theoretical models of automata, transducers and formal grammars; includes concise coverage of algorithms for processing regular expressions and finite automata; introduces static program analysis based on flow equations.
This fully revised and expanded new edition elucidates the elegance and simplicity of the fundamental theory underlying Formal Languages and Compilation.
Retaining the reader-friendly, minimalist style of the first edition, this uniquely versatile textbook describes the essential principles and methods used for defining the syntax of artificial languages, and for designing efficient parsing algorithms and syntax-directed translators with semantic attributes. A comprehensive selection of topics is presented within a rigorous, unified framework, illustrated by numerous practical examples.
Features and topics:
- Presents a novel conceptual approach to parsing algorithms that applies to extended BNF grammars, together with a parallel parsing algorithm (NEW)
- Supplies supplementary teaching tools, including course slides and exercises with solutions, at an associated website
- Unifies the concepts and notations used in different approaches, enabling an extended coverage of methods with a reduced number of definitions
- Systematically discusses ambiguous forms, allowing readers to avoid pitfalls when designing grammars
- Describes all algorithms in pseudocode, so that detailed knowledge of a specific programming language is not necessary
- Makes extensive usage of theoretical models of automata, transducers and formal grammars
Includes concise coverage of algorithms for processing regular expressions and finite automata- Introduces static program analysis based on flow equations
This clearly-written, classroom-tested textbook is an ideal guide to the fundamentals of this field for advanced undergraduate and graduate students in computer science and computer engineering. Some background in programming is required, and readers should also be familiar with basic set theory, algebra and logic.
From the book reviews:
"The book provides an in-depth introduction to the foundations of compiler construction with a strong emphasis on the theory of formal languages. It is well suited for a basic course on formal languages (covering the regular and the context-free languages) and an advanced course on compiler construction. The presentation is mathematically exact and thus necessarily formal, but the authors make every effort to illustrate the concepts and algorithms on well-selected examples." (Andreas Maletti, zbMATH, Vol. 1298, 2014)