Formal Languages and Compilation - Crespi Reghizzi, Stefano; Breveglieri, Luca.; Morzenti, Angelo; SpringerLink (Online service) (London : Springer London : Imprint: Springer, 2013)
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.
Introduction -- Syntax -- Finite Automata as Regular Language Recognizers -- Pushdown Automata and Parsing -- Translation Semantics and Static Analysis.
Keywords: Computer science; Computer Science; Mathematical Logic and Formal Languages