Theory of Computation
Derick Wood
First Edition---Contents
Preface...iii
Course Outlines...xvii
PART I--INTRODUCTION...1
Chapter 0--PRELIMINARIES
Chapter 1--LANGUAGES AND COMPUTATION
1.1--Programming Problems and Computation...50
1.2--Alphabets, Words, and Languages...63
1.2.1--Alphabets and Words...64
1.2.2--Languages and Operations...68
1.2.3--Defining Languages...71
1.2.4--Definition Summaries...76
1.3--Languages, Problems, and Computation...77
1.4--Additional Remarks...80
1.4.1--Summary...80
1.4.2--History...80
1.5--Springboard...81
1.5.1--The Lambda Calculus...81
1.5.2--Markov Algorithms...81
1.5.3--Post Systems and Production Systems...82
1.5.4--Recursive Functions...83
1.5.5--Formal Semantics...84
1.5.6--Program Correctness...85
1.5.7--Program Construction...86
Exercises...86
Programming Projects...90
PART II--MODELS...93
Chapter 2--FINITE AUTOMATA
2.1--States, State Diagrams, and Transitions...95
2.2--Deterministic Finite Automata...98
2.3--Nondeterministic Finite Automata...111
2.4--Minimization and Simplification...127
2.5--DFAs and Tries...133
2.6--Lambda-FAs and Lazy FAs...135
2.6.1--Lambda-FAs and Lambda-Transitions...135
2.6.2--Lazy Finite Automata...140
2.7--Additional Remarks...142
2.7.1--Summary...142
2.7.2--History...143
2.8--Springboard...143
2.8.1--The Syntactic Monoid...143
2.8.2--Life and Cellular Automata...144
2.8.3--Communication Protocols...144
2.8.4--Security...144
2.8.5--Tree Automata...145
2.8.6--Avoiding Spaghetti Programming...145
Exercises...147
Programming Projects...153
Chapter 3--REGULAR EXPRESSIONS
3.1--Motivation and Definition...155
3.2--Regular Expressions into Finite Automata...161
3.3--Extended Finite Automata into Regular Expressions...166
3.4--Extended Regular Expressions...175
3.5--Additional Remarks...179
3.5.1--Summary...179
3.5.2--History...179
3.6--Springboard...180
3.6.1--A Differential Calculus...180
3.6.2--Descriptional Complexity...180
3.6.3--VLSI...181
3.6.4--Path Expressions...181
Exercises...182
Programming Projects...185
Chapter 4--CONTEXT-FREE GRAMMARS
4.1--Basics of Context-Free Grammars...187
4.2--Simplifications...211
4.2.1--Redundant Symbols...212
4.2.2--Empty Productions...215
4.2.3--Unit Productions...220
4.2.4--Binary Form and Chomsky Normal Form...221
4.2.5--Greibach Normal Form and Two-Standard Normal Form...224
4.3--Linear and Regular Grammars...229
4.4--Extended Context-Free Grammars...232
4.5--Additional Remarks...236
4.5.1--Summary...236
4.5.2--History...237
4.6--Springboard...237
4.6.1--Recognition and Parsing...237
4.6.2--Ambiguity...238
4.6.3--W-grammars...238
4.6.4--Simplifications and Efficiency...239
4.6.5--Context-Free Expressions...239
4.6.6--E0L Grammars and Languages...239
4.6.7--ALGOL-Like Languages...240
Exercises...240
Programming Projects...246
Chapter 5--PUSHDOWN AUTOMATA
5.1--Deterministic Pushdown Automata...248
5.2--Nondeterministic Pushdown Automata...259
5.3*--Counter Automata...270
5.4*--Two-Way Deterministic Pushdown Automata...271
5.5--Additional Remarks...273
5.5.1--Summary...273
5.5.2--History...274
5.6--Springboard...274
5.6.1--Data Structure Automata...274
5.6.2--Preset Pushdown Automata...274
5.6.3--Multihead and Multipushdown Automata...274
5.6.4--Finite-Buffer PDAs and Lazy PDAs...274
5.6.5--Small PDAs...275
Exercises...276
Programming Projects...279
Chapter 6--TURING MACHINES
6.1--The Turing Machine...280
6.2--Turing Machine Programming...295
6.3*--Simplifications...301
6.4--Extensions...311
6.4.1--Two-Way Infinite Tape Turing Machines...312
6.4.2--Nondeterministic Turing Machines...316
6.4.3--Multihead Turing Machines...318
6.4.4--Multitape Turing Machines...320
6.5--Universal Turing Machines...320
6.6--Resource-Bounded Turing Machines...326
6.7--Additional Remarks...331
6.7.1--Summary...331
6.7.2--History...331
6.8--Springboard...331
6.8.1--The Busy Beaver Game...331
6.8.2--The Turing Micros...332
6.8.3--Computable Functions...333
6.8.4--NP-Completeness...333
6.8.5--Simulation Efficiency...333
6.8.6--Recursively Enumerable Languages...334
6.8.7--Context-Sensitive Languages...334
Exercises...334
Programming Projects...337
Chapter 7--FUNCTIONS, RELATIONS, AND TRANSLATIONS
7.1--Introduction...338
7.2--Finite Transducers...339
7.3--Translation Grammars...348
7.4--Pushdown Transducers...352
7.5--Turing Machines and Computable Functions...355
7.6--Recursive Functions...359
7.7--Additional Remarks...364
7.7.1--Summary...364
7.7.2--History...364
7.8--Springboard...364
7.8.1--Lexical Analysis...364
7.8.2--Syntax-Directed Translations...364
7.8.3--File Compaction...365
7.8.4--Translation Expressions...365
7.8.5--String Similarity...365
7.8.6--Recursive Function Theory...365
Exercises...366
Programming Projects...368
PART III--PROPERTIES...371
Chapter 8--FAMILY RELATIONSHIPS
8.1--Finite, Regular, and Context-Free Languages...373
8.1.1--Introduction...373
8.1.2--Regular Languages...375
8.1.3*--Unary Regular Languages...379
8.2--Context-Free and Tractable Languages...382
8.2.1--Deterministic Context-Free Languages...382
8.2.2*--Tractable Languages...383
8.2.3--Context-Free Pumping Lemma...387
8.2.4*--Parikh's Theorem...394
8.3*--Tractable and Recursive Languages...397
8.4--Recursive and DTM Languages...403
8.5--Additional Remarks...406
8.5.1--Summary...406
8.5.2--History...406
8.6--Springboard...407
8.6.1--Hierarchy Results...407
8.6.2--Pumping Lemmas...407
8.6.3--Nonlanguages and Closure Properties...408
Exercises...408
Chapter 9--CLOSURE PROPERTIES
9.1--Boolean and Reversal Operations...412
9.2--Mappings...420
9.2.1--Morphism and Substitution...420
9.2.2*--Inverse Morphism and Finite Transduction...429
9.3--Catenation, Quotient, and Star...434
9.4--Composition...435
9.5--Cylinders, Cones, and AFLs...438
9.6--Additional Remarks...440
9.6.1--Summary...440
9.6.2--History...440
9.7--Springboard...441
9.7.1--Closure Properties...441
9.7.2--Cones...441
Exercises...441
Chapter 10--DECISION PROBLEMS
10.1--Decidability and Membership...446
10.1.1--Introduction...446
10.1.2--Finite Automata...447
10.1.3--Context-Free Grammars...447
10.1.4--Deterministic Turing Machines...448
10.2--Emptiness and Finiteness...450
10.2.1--Finite Automata...450
10.2.2--Context-Free Grammars...451
10.2.3--Deterministic Turing Machines...452
10.3--Containment, Equivalence, and Intersection...454
10.3.1--Finite Automata...454
10.3.2--Context-Free Grammars...455
10.4--Context-Free Ambiguity...462
10.5--Additional Remarks...462
10.5.1--Summary...462
10.5.2--History...462
10.6--Springboard...463
10.6.1--Post's Correspondence Problem...463
Exercises...464
PART IV--ONWARD...469
Chapter 11--FURTHER TOPICS
11.1--NP-Complete Problems...472
11.1.1--The Ordering...472
11.1.2--An NP-Complete Problem...475
11.1.3--Satisfiability...476
11.1.4--Traveling Salesman...481
11.1.5--Subset Sum...488
11.1.6--Hierarchical Grammars...492
11.2--Rewriting Systems and Church's Thesis...497
11.2.1--Phrase Structure Grammars...497
11.2.2--Interactive Lindenmayer Grammars...500
11.3--Parsing...504
11.3.1--General CFG Parsing...504
11.3.2--Deterministic Top-Down Parsing...507
11.3.3--Deterministic Bottom-Up Parsing...515
11.4--Additional Remarks...523
11.4.1--Summary...523
11.4.2--History...523
11.5--Springboard...524
11.5.1--Dealing with NP-Completeness...524
11.5.2--LALR Grammars...525
11.5.3--Other Kinds of Completeness...525
Exercises...526
BIBLIOGRAPHY...531
INDEX...547
http://www.cs.ust.hk/~dwood/.toc
dwood@cs.ust.hk
Computer Science Department
The Hong Kong University of Science and Technology
Clear Water Bay, Kowloon
HONG KONG