Formal Languages and Compilation

by
Format: Hardcover
Pub. Date: 2009-01-01
Publisher(s): Textstream
  • Free Shipping Icon

    This Item Qualifies for Free Shipping!*

    *Excludes marketplace orders.

List Price: $83.95

Rent Textbook

Select for Price
There was a problem. Please try again later.

Rent Digital

Rent Digital Options
Online:30 Days access
Downloadable:30 Days
$28.80
Online:60 Days access
Downloadable:60 Days
$38.40
Online:90 Days access
Downloadable:90 Days
$48.00
Online:120 Days access
Downloadable:120 Days
$57.60
Online:180 Days access
Downloadable:180 Days
$62.40
Online:1825 Days access
Downloadable:Lifetime Access
$95.99
$62.40

New Textbook

We're Sorry
Sold Out

Used Textbook

We're Sorry
Sold Out

How Marketplace Works:

  • This item is offered by an independent seller and not shipped from our warehouse
  • Item details like edition and cover design may differ from our description; see seller's comments before ordering.
  • Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
  • Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
  • Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.

Summary

Whereas many textbooks on formal languages and compilation focus on technological aspects, it is the elegance and simplicity of the underlying *theory* that allows students to acquire the fundamental paradigms of language structures, to avoid pitfalls such as ambiguity, and to adequately map structure to meaning.Formal Languages and Compilation covers the fundamental concepts of formal languages and compilation, which are central to computer science and based on well-consolidated principles. It presents a comprehensive selection of topics and is based on rigorous definitions and algorithms, illustrated by many motivating examples, with a focus on the importance of combining theoretical concepts with practical applications.In a clear, reader-friendly and simple minimalist way, this uniquely versatile textbook provides the essential principles and methods used for defining the syntax of artificial languages and implementing simple translators, as well as in designing syntax-directed translators. Readers require some background in programming, although detailed knowledge of a specific programming language is not necessary; they should also be somewhat familiar with basic set theory, algebra and logic.Features and topics:'¢ Provides many pedagogical tools, such as slides and solutions for lecturers via the author's website'¢ Unifies the concepts and notations used in the various approaches of parsing algorithms'¢ Concepts are illustrated with many realistic examples, to ease the understanding of the theory and the transfer to application'¢ Theoretical models of automata, transducers and formal grammars are used extensively'¢ Algorithms are described in a pseudo-code to avoid the disturbing details of a programming language, yet they are straightforward to convert to executable procedures'¢ Coverage of the algorithms for processing regular expressions and finite automata is concise and complete'¢ Systematically discusses ambiguous forms allowing readers to avoid pitfalls when designing grammars'¢ Unifies the concepts and notations used in different approaches, thus extending methods coverage with a reduced definitional apparatus'¢ Introduces static program analysis, moving from the baseline reached with finite automata and local languages This comprehensive and clearly written text, based on many years of course instruction, will be welcomed as the ideal guide to the fundamentals of this field by advanced undergraduate and graduate students in computer science and computer engineering. Stefano Crespi Reghizzi is a full professor of computer science at the Politecnico di Milano, Milan, Italy, where he has numerous years of experience teaching formal languages and compiler technology. In addition, he leads the department's compiler research group.

Author Biography

Stefano Crespi Reghizzi is a full professor of computer science at the Politecnico di Milano, Milan, Italy, where he has numerous years of experience teaching formal languages and compiler technology In addition, he leads the department's compiler research group.

Table of Contents

Introductionp. 1
Intended Scope and Audiencep. 1
Compiler Parts and Corresponding Conceptsp. 2
Syntaxp. 5
Introductionp. 5
Artificial and Formal Languagesp. 5
Language Typesp. 6
Chapter Outlinep. 7
Formal Language Theoryp. 8
Alphabet and Languagep. 8
Language Operationsp. 11
Set Operationsp. 13
Star and Crossp. 14
Quotientp. 17
Regular Expressions and Languagesp. 17
Definition of Regular Expressionp. 18
Derivation and Languagep. 20
Other Operatorsp. 23
Closure Properties of REG Familyp. 24
Linguistic Abstractionp. 25
Abstract and Concrete Listsp. 26
Context-Free Generative Grammarsp. 30
Limits of Regular Languagesp. 30
Introduction to Context-Free Grammarsp. 31
Conventional Grammar Representationsp. 33
Derivation and Language Generationp. 35
Erroneous Grammars and Useless Rulesp. 37
Recursion and Language Infinityp. 39
Syntax Trees and Canonical Derivationsp. 40
Parenthesis Languagesp. 44
Regular Composition of Context-Free Languagesp. 46
Ambiguityp. 47
Catalogue of Ambiguous Forms and Remediesp. 49
Weak and Structural Equivalencep. 57
Grammar Transformations and Normal Formsp. 59
Grammars of Regular Languagesp. 67
From Regular Expressions to Context-Free Grammarsp. 67
Linear Grammarsp. 69
Linear Language Equationsp. 71
Comparison of Regular and Context-Free Languagesp. 73
Limits of Context-Free Languagesp. 76
Closure Properties of REG and CFp. 78
Alphabetic Transformationsp. 80
Grammars with Regular Expressionsp. 83
More General Grammars and Language Familiesp. 87
Chomsky Classificationp. 87
Finite Automata as Regular Language Recognizersp. 93
Introductionp. 93
Recognition Algorithms and Automatap. 94
A General Automationp. 95
Introduction to Finite Automatap. 98
Deterministic Finite Automatap. 100
Error State and Total Automatap. 101
Clean Automatap. 101
Minimal Automatap. 103
From Automata to Grammarsp. 106
Nondeterministic Automatap. 108
Motivation of Nondeterminismp. 108
Nondeterministic Recognizersp. 110
Automata with Spontaneous Movesp. 112
Correspondence between Automata and Grammarsp. 114
Ambiguity of Automatap. 115
Left-Linear Grammars and Automatap. 116
Directly from Automata to Regular Expressions: BMC Methodp. 117
Elimination of Nondeterminismp. 119
Construction of Accessible Subsetsp. 121
From Regular Expression to Recognizerp. 124
Thompson Structural Methodp. 124
Algorithm of Glushkov, McNaughton and Yamadap. 126
Deterministic Recognizer by Berry and Sethi Algorithmp. 134
Regular Expressions with Complement and Intersectionp. 137
Product of Automatap. 138
Summary of Relations between Regular Languages, Grammars, and Automatap. 143
Pushdown Automata and Top-down Parsingp. 147
Introductionp. 147
Pushdown Automatonp. 148
From Grammar to Pushdown Automatonp. 149
Definition of Pushdown Automatonp. 152
One Family for Context-Free Languages and Pushdown Automatap. 157
Intersection of Regular and Context-Free Languagesp. 160
Deterministic Pushdown Automata and Languagesp. 160
Syntax Analysisp. 170
Top-Down and Bottom-Up Analysisp. 170
Grammar as Network of Finite Automatap. 172
Nondeterministic Recognition Algorithmp. 176
Top-Down Deterministic Syntax Analysisp. 178
Condition for LL(1) Parsingp. 179
How to Obtain LL(1) Grammarsp. 192
Increasing Look-aheadp. 196
Bottom-Up and General Parsingp. 203
Introductionp. 203
Bottom-Up Deterministic Syntax Analysisp. 203
LR(0) Methodp. 204
LR(0) Grammarsp. 206
Shift-Reduce Parserp. 211
Syntax Analysis with LR(k) Look-Aheadp. 214
LR(1) Parsing Algorithmp. 226
Properties of LR(k) Language and Grammar Familiesp. 226
How to Obtain LR(1) Grammarsp. 229
LR(1) Parsing with Extended Context-Free Grammarsp. 232
Comparison of Deterministic Families REG, LL(k), and LR(k)p. 241
A General Parsing Algorithmp. 242
Introductory Examplep. 243
Earley Algorithmp. 247
Computational Complexityp. 252
Handling of Empty Rulesp. 254
Further Developmentsp. 256
How to Choose a Parserp. 256
Translation Semantics and Static Analysisp. 259
Introductionp. 259
Chapter Outlinep. 260
Translation Relation and Functionp. 262
Transliterationp. 264
Regular Translationsp. 264
Two-Input Automatonp. 266
Translation Functions and Finite Transducersp. 270
Purely Syntactic Translationp. 275
Infix and Polish Notationsp. 277
Ambiguity of Source Grammar and Translationp. 281
Translation Grammars and Pushdown Transducersp. 282
Syntax Analysis with Online Translationp. 287
Top-Down Deterministic Translationp. 287
Bottom-Up Deterministic Translationp. 290
Comparisonsp. 295
Closure Properties of Translationsp. 296
Semantic Translationsp. 297
Attribute Grammarsp. 299
Left and Right Attributesp. 301
Definition of Attribute Grammarp. 305
Dependence Graph and Attribute Evaluationp. 307
One Sweep Semantic Evaluationp. 311
Other Evaluation Methodsp. 315
Combined Syntax and Semantic Analysisp. 316
Typical Applications of Attribute Grammarsp. 324
Static Program Analysisp. 334
A Program as an Automatonp. 334
Liveness Intervals of Variablesp. 338
Reaching Definitionsp. 345
Referencesp. 353
Indexp. 357
Table of Contents provided by Ingram. All Rights Reserved.

An electronic version of this book is available through VitalSource.

This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.

By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.

Digital License

You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.

More details can be found here.

A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.

Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.

Please view the compatibility matrix prior to purchase.