Introduction to automata theory, languages, and computation

  • 4.5 (2 ratings) ·
  • 44 Want to read
  • 5 Currently reading
  • 2 Have read
Not in Library

My Reading Lists:

Create a new list

Check-In

×Close
Add an optional check-in date. Check-in dates are used to track yearly reading goals.
Today

  • 4.5 (2 ratings) ·
  • 44 Want to read
  • 5 Currently reading
  • 2 Have read

Buy this book

Last edited by MARC Bot
September 24, 2024 | History

Introduction to automata theory, languages, and computation

  • 4.5 (2 ratings) ·
  • 44 Want to read
  • 5 Currently reading
  • 2 Have read

"This classic book on formal languages, automata theory, and computational complexity has been updated to present theoretical concepts in a concise and straightforward manner with increased coverage of practical applications. This third edition offers students a less formal writing style while providing the most accessible coverage of automata theory available, solid treatment on constructing proofs, many figures and diagrams to help convey ideas, and sidebars to highlight related material. A new feature of this edition is Gradiance, a Web-based homework and assessment tool. Each chapter offers an abundance of exercises, including selected Gradiance problems, for a true hands-on learning experience for students."--BOOK JACKET.

Publish Date
Pages
535

Buy this book

Previews available in: German English

Edition Availability
Cover of: Introduction to automata theory, languages, and computation
Introduction to automata theory, languages, and computation
2007, Pearson/Addison-Wesley, Pearson/Addison Wesley
Hardcover
Cover of: Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
July 8, 2006, Addison Wesley
Hardcover in English - 3 edition
Cover of: Introduction to Automata Theory, Languages, and Computation
Introduction to Automata Theory, Languages, and Computation
2003, Pearson Education, Limited
in English
Cover of: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie
Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie
2002, Pearson Education Deutschland
in German - 2., überarbeitete Auflage
Cover of: Introduction to automata theory, languages, and computation
Introduction to automata theory, languages, and computation
2001, Addison-Wesley
in English - 2nd ed.
Cover of: Introduction to automata theory, languages, and computation
Introduction to automata theory, languages, and computation
1999, Addison-Wesley
in English
Cover of: Introduction to automata theory, languages, and computation
Introduction to automata theory, languages, and computation
1998, Addison-Wesley
in English
Cover of: Introduction to automata theory, languages, and computation
Introduction to automata theory, languages, and computation
1979, Addison-Wesley
in English

Add another edition?

Book Details


Table of Contents

1. Automata: The Methods and the Madness
Page 1
1.1. Why Study Automata Theory
Page 2
1.1.1. Introduction to Finite Automata
Page 2
1.1.2. Structural Representations
Page 4
1.1.3. Automata and Complexity
Page 5
1.2. Introduction to Formal Proof
Page 5
1.2.1. Deductive Proofs
Page 6
1.2.2. Reduction to Definitions
Page 8
1.2.3. Other Theorem Forms
Page 10
1.2.4. Theorems That Appear Not to Be If-Then Statements
Page 13
1.3. Additional Forms of Proof
Page 13
1.3.1. Proving Equivalences About Sets
Page 14
1.3.2. The Contrapositive
Page 14
1.3.3. Proof by Contradiction
Page 16
1.3.4. Counterexamples
Page 17
1.4. Inductive Proofs
Page 19
1.4.1. Induction on Integers
Page 19
1.4.2. More General Forms of Integer Inductions
Page 22
1.4.3. Structural Inductions
Page 23
1.4.4. Mutual Inductions
Page 26
1.5. The Central Concepts of Automata Theory
Page 28
1.5.1. Alphabets
Page 28
1.5.2. Strings
Page 29
1.5.3. Languages
Page 30
1.5.4. Problems
Page 31
1.6. Summary of Chapter 1
Page 33
1.7. Gradiance Problems for Chapter 1
Page 35
1.8. References for Chapter 1
Page 36
2. Finite Automata
Page 37
2.1. An Informal Picture of Finite Automata
Page 38
2.1.1. The Ground Rules
Page 38
2.1.2. The Protocol
Page 39
2.1.3. Enabling the Automata to Ignore Actions
Page 41
2.1.4. The Entire System as an Automaton
Page 43
2.1.5. Using the Product Automaton to Validate the Protocol
Page 44
2.2. Deterministic Finite Automata
Page 45
2.2.1. Definition of a Deterministic Finite Automoton
Page 45
2.2.2. How a DFA Processes Strings
Page 46
2.2.3. Simpler Notations for DFA's
Page 47
2.2.4. Extending the Transition Function to Strings
Page 49
2.2.5. The Language of a DFA
Page 52
2.2.6. Exercises for Section 2.2
Page 52
2.3. Nondeterministic Finite Automata
Page 55
2.3.1. An Informal View of Nondeterministic Finite Automata
Page 55
2.3.2. Definition of Nondeterministic Finite Automata
Page 57
2.3.3. The Extended Transition Function
Page 58
2.3.4. The Language of an NFA
Page 59
2.3.5. Equivalence of Deterministic and Nondeterministic Finite Automata
Page 60
2.3.6. A Bad Case for the Subset Construction
Page 64
2.3.7. Exercises for Section 2.3
Page 65
2.4. An Application: Text Search
Page 68
2.4.1. Finding Strings in Text
Page 68
2.4.2. Nondeterministic Finite Automata for Text Search
Page 69
2.4.3. A DFA to Recognize a Set of Keywords
Page 70
2.4.4. Exercises for Section 2.4
Page 71
2.5. Finite Automata With EpsilonTransitions
Page 72
2.5.1. Uses of ϵ-Transitions
Page 72
2.5.2. The Formal Notation for an ϵ-NFA
Page 73
2.5.3. Epsilon-Closures
Page 74
2.5.4. Extended Transitions and Languages for ϵ-NFA's
Page 75
2.5.5. Eliminationg ϵ-Transitions
Page 77
2.5.6. Exercises for Section 2.5
Page 79
2.6. Summary of Chapter 2
Page 80
2.7. Gradiance Problems for Chapter 2
Page 80
2.8. References for Chapter 2
Page 83
3. Regular Expressions and Languages
Page 85
3.1. Regular Expressions
Page 85
3.1.1. The Operators of Regular Expressions
Page 86
3.1.2. Bulding Regular Expressions
Page 87
3.1.3. Precedence of Regular-Expression Operators
Page 90
3.1.4. Exercises for Section 3.1
Page 91
3.2. Finite Automata and Regular Expressions
Page 92
3.2.1. From DFA's to Regular Expressions
Page 93
3.2.2. Converting DFA's to Regular Expressions by Eliminating States
Page 98
3.2.3. Converting Regular Expressions to Automata
Page 102
3.2.4. Exercises for Section 3.2
Page 107
3.3. Applications of Regular Expressions
Page 109
3.3.1. Regular Expressions in UNIX
Page 109
3.3.2. Lexical Analysis
Page 110
3.3.3. Finding Patterns in Text
Page 112
3.3.4. Exercises for Section 3.3
Page 114
3.4. Algebraic Laws for Regular Expressions
Page 115
3.4.1. Associativity and Commutativity
Page 115
3.4.2. Identities and Annihilators
Page 116
3.4.3. Distributive Laws
Page 116
3.4.4. The Idempotent Laws
Page 117
3.4.5. Laws Involving Closures
Page 118
3.4.6. Discovering Laws for Regular Expressions
Page 118
3.4.7. The Test for a Regular-Expression Algebraic Law
Page 120
3.4.8. Exercises for Section 3.4
Page 121
3.5. Summary of Chapter 3
Page 123
3.6. Gradiance Problems for Chapter 3
Page 123
3.7. References for Chapter 3
Page 125
4. Properties of Regular Languages
Page 127
4.1. Proving Languages Not to Be Regular
Page 128
4.1.1. The Pumping Lemma for Regular Languages
Page 128
4.1.2. Applications of the Pumping Lemma
Page 129
4.1.3. Exercises for Section 4.1
Page 131
4.2. Closure Properties of Regular Languages
Page 133
4.2.1. Closure of Regular Languages Under Boolean Operations
Page 133
4.2.2. Reversal
Page 139
4.2.3. Homomorphisms
Page 140
4.2.4. Inverse Homomorphisms
Page 142
4.2.5. Exercises for Section 4.2
Page 147
4.3. Decision Properties of Regular Languages
Page 150
4.3.1. Converting Among Representations
Page 151
4.3.2. Testing Emptiness of Regular Languages
Page 153
4.3.3. Testing Membership in a Regular Language
Page 154
4.3.4. Exercises for Section 4.3
Page 155
4.4. Equivalence and Minimization of Automata
Page 155
4.4.1. Testing Equivalence of States
Page 155
4.4.2. Testing Equivalence of Regular Languages
Page 159
4.4.3. Minimization of DFA's
Page 160
4.4.4. Why the Minimized DFA Can't Be Beaten
Page 163
4.4.5. Exercises for Section 4.4
Page 165
4.5. Summary of Chapter 4
Page 166
4.6. Gradiance Problems for Chapter 4
Page 167
4.7. References for Chapter 4
Page 169
5. Context-Free Grammars and Languages
Page 171
5.1. Context-Free Grammars
Page 171
5.1.1. An Informal Example
Page 172
5.1.2. Definition of Context-Free Grammars
Page 173
5.1.3. Derivations Using a Grammar
Page 175
5.1.4. Leftmost and Rightmost Derivations
Page 177
5.1.5. The Language of a Grammar
Page 179
5.1.6. Sentential Forms
Page 180
5.1.7. Exercises for Section 5.1
Page 181
5.2. Parse Trees
Page 183
5.2.1. Constructing Parse Trees
Page 183
5.2.2. The Yield of a Parse Tree
Page 185
5.2.3. Inference, Derivations, and Parse Trees
Page 185
5.2.4. From Inferences to Trees
Page 187
5.2.5. From Trees to Derivations
Page 188
5.2.6. From Derivations to Recursive Inferences
Page 191
5.2.7. Exercises for sectino 5.2
Page 193
5.3. Applications of Context-Free Grammars
Page 193
5.3.1. Parsers
Page 194
5.3.2. The YACC Parser-Generator
Page 196
5.3.3. Markup Languages
Page 197
5.3.4. XML and Document-Type Definitions
Page 200
5.3.5. Exercises for Section 5.3
Page 206
5.4. Ambiguity in Grammars and Languages
Page 207
5.4.1. Ambiguous Grammars
Page 207
5.4.2. Removing Ambiguity From Grammars
Page 209
5.4.3. Leftmost Derivations as a Way to Express Ambiguity
Page 212
5.4.4. Inherent Ambiguity
Page 213
5.4.5. Exercises for Section 5.4
Page 215
5.5. Summary of Chapter 5
Page 216
5.6. Gradiance Problems for Chapter 5
Page 218
5.7. References for Chapter 5
Page 224
6. Pushdown Automata
Page 225
6.1. Definition of the Pushdown Automaton
Page 225
6.1.1. Informal Introduction
Page 225
6.1.2. The Formal Definition of Pushdown Automata
Page 227
6.1.3. A Graphical Notation for PDA's
Page 229
6.1.4. Instantaneous Descriptions of a PDA
Page 230
6.1.5. Exercises for Section 6.1
Page 233
6.2. The Languages of a PDA
Page 234
6.2.1. Acceptance by Final State
Page 235
6.2.1. Acceptance by Empty Stack
Page 236
6.2.1. From Empty Stack to Final State
Page 237
6.2.1. From Final State to Empty Stack
Page 240
6.2.1. Exercises for Section 6.2
Page 241
6.3. Equivalence of PDA's and CFG's
Page 243
6.3.1. From Grammars to Pushdown Automata
Page 243
6.3.2. From PDA's to Grammars
Page 247
6.3.3. Exercises for Section 6.3
Page 251
6.4. Deterministic Pushdown Automata
Page 252
6.4.1. Definition of a Deterministic PDA
Page 252
6.4.2. Regular Languages and Deterministic PDA's
Page 253
6.4.3. DPDA's and Context-Free Languages
Page 254
6.4.4. DPDA's and Ambiguous Grammars
Page 255
6.4.5. Exercises for Section 6.4
Page 256
6.5. Summary of Chapter 6
Page 257
6.6. Gradiance Problems for Chapter 6
Page 258
6.7. References for Chapter 6
Page 260
7. Properties of Context-Free Languages
Page 261
7.1. Normal Forms for Context-Free Grammars
Page 261
7.1.1. Eliminating Useless Symbols
Page 263
7.1.2. Computing the Generating and Reachable Symbols
Page 264
7.1.3. Eliminating ϵ-Productions
Page 265
7.1.4. Eliminating Unit Productions
Page 268
7.1.5. Chomsky Normal Form
Page 272
7.1.1. Exercises For Section 7.1
Page 275
7.2. The Pumping Lemma for Context-Free Languages
Page 179
7.2.1. The Size of Parse Trees
Page 280
7.2.2. Statement of the Pumping Lemma
Page 280
7.2.3. Applications of the Pumping Lemma for CFL's
Page 283
7.2.4. Exercises for Section 7.2
Page 286
7.3. Closure Properties of Context-Free Languages
Page 287
7.3.1. Substitutions
Page 287
7.3.2. Applications of the Substitution Theorem
Page 289
7.3.3. Reversal
Page 290
7.3.4. Intersection With a Regular language
Page 291
7.3.5. Inverse Homomorphism
Page 295
7.3.6. Exercises for Section 7.3
Page 297
7.4. Decision Properties of CFL's
Page 299
7.4.1. Complexity of Converting Among CFG's and PDA's
Page 299
7.4.2. Running Time of Conversion to Chomsky Normal Form
Page 301
7.4.3. Testing Emptiness of CFL's
Page 302
7.4.4. Testing Membership in a CFL
Page 303
7.4.5. Preview of Undecidable CFL Problems
Page 307
7.4.6. Exercises for Section 7.4
Page 307
7.5. Summary of Chapter 7
Page 308
7.6. Gradiance Problems for Chapter 7
Page 309
7.7. References for Chapter 7
Page 314
8. Introduction to Turing Machines
Page 315
8.1. Problems That Computers Cannot Solve
Page 315
8.1.1. Programs that Print "Hello, World"
Page 316
8.1.2. The Hypothetical "Hello, World" Tester
Page 318
8.1.3. Reducing One Problem to Another
Page 321
8.1.4. Exercises for Section 8.1
Page 324
8.2. The Turing Machine
Page 324
8.2.1. The Quest to Decide All Mathematical Questions
Page 325
8.2.2. Notation for the Turing Machine
Page 326
8.2.3. Instantaneous Descriptions for Turing Machines
Page 327
8.2.4. Transition Diagrams for Turing Machines
Page 331
8.2.5. The Language of a Turing Machine
Page 334
8.2.6. Turing Machines and Halting
Page 334
8.2.7. Exercises for Section 8.2
Page 335
8.3. Programming Techniques for Turing Machines
Page 337
8.3.1. Storage in the State
Page 337
8.3.2. Multiple Tracks
Page 339
8.3.3. Subroutines
Page 341
8.3.4. Exercises for Section 8.3
Page 343
8.4. Extensions to the Basic Turing Machine
Page 343
8.4.1. Multitape Turing Machines
Page 344
8.4.2. Equivalence of One-Tape and Multitape TM's
Page 345
8.4.3. Running Time and the Many-Tapes-to-One Construction
Page 346
8.4.4. Nondeterministic Turing Machines
Page 347
8.4.5. Exercises for Section 8.4
Page 349
8.5. Restricted Turing Machines
Page 352
8.5.1. Turing Machines with Semi-infinite Tapes
Page 352
8.5.2. Multistack Machines
Page 355
8.5.3. Counter Machines
Page 358
8.5.4. The Power of Counter Machines
Page 359
8.5.5. Exercises for Section 8.5
Page 361
8.6. Turing Machines and Computers
Page 362
8.6.1. Simulating a Turing Machine by Computer
Page 362
8.6.2. Simulating a Computer by a Turing Machine
Page 363
8.6.3. Comparing the Running Times of Computers and Turing Machines
Page 368
8.7. Summary of Chapter 8
Page 370
8.8. Gradiance Problems for Chapter 8
Page 372
8.9. References for Chapter 8
Page 374
9. Undecidability
Page 377
9.1. A Language That Is Not Recursively Enumerable
Page 378
9.1.1. Enumerating the Binary Strings
Page 379
9.1.2. Codes for Turing Machines
Page 379
9.1.3. The Diagonalization Language
Page 380
9.1.4. Proof that L[d]XXX Is Not Recursively Enumerable
Page 382
9.1.5. Exercises for Section 9.1
Page 382
9.2. An Undecidable Problem That Is RE
Page 383
9.2.1. Recursive Languages
Page 383
9.2.2. Complements of Recursive and RE languages
Page 384
9.2.3. The Universal Language
Page 387
9.2.4. Undecidability of the Universal Language
Page 389
9.2.5. Exercises for Section 9.2
Page 390
9.3. Undecidable Problems About Turing Machines
Page 392
9.3.1. Reductions
Page 392
9.3.2. Turing Machines That Accept the Empty Language
Page 394
9.3.3. Rice's Theorem and Properties of the RE Languages
Page 397
9.3.4. Problems and Turing-Machine Specifications
Page 399
9.3.5. Exercises for Section 9.3
Page 400
9.4. Post's Correspondence Problem
Page 401
9.4.1. Definition of Post's Correspondence Problem
Page 401
9.4.2. The "Modified" PCP
Page 404
9.4.3. Completion of the Proof of PCP Undecidability
Page 407
9.4.4. Exercises for Section 9.4
Page 412
9.5. Other Undecidable Problems
Page 412
9.5.1. Problems About Programs
Page 413
9.5.2. Undecidability of Ambiguity for CFG's
Page 413
9.5.3. The Complement of a List Language
Page 415
9.5.4. Exercises for Section 9.5
Page 418
9.6. Summary of Chapter 9
Page 419
9.7. Gradiance Problems for Chapter 9
Page 420
9.8. References for Chapter 9
Page 422
10. Intractable Problems
Page 425
10.1. The Classes P and NP
Page 426
10.1.1. Problems Solvable in Polynomial Time
Page 426
10.1.2. An Example: Kruskal's Algorithm
Page 426
10.1.3. Nondeterministic Polynomial Time
Page 431
10.1.4. An NP EXample: The Traveling Salesman Problem
Page 431
10.1.5. Polynomial-Time Reductions
Page 433
10.1.6. NP-Complete Problems
Page 434
10.1.7. Exercises for Section 10.1
Page 435
10.2. An NP-Complete Problem
Page 438
10.2.1. The Satisfiability Problem
Page 438
10.2.2. Representing SAT Instances
Page 439
10.2.3. NP-Completeness of the SAT Problem
Page 440
10.2.4. Exercises for Section 10.2
Page 447
10.3. A Restricted Satisfiability Problem
Page 447
10.3.1. Normal forms for Boolean Expressions
Page 448
10.3.2. Converting Expressions to CNF
Page 449
10.3.3. NP-Completeness of CSAT
Page 452
10.3.4. NP-Completeness of 3SAT
Page 456
10.3.5. Exercises for Section 10.3
Page 458
10.4. Additional NP-Complete Problems
Page 458
10.4.1. Describing NP-complete Problems
Page 459
10.4.2. The Problem of Independent Sets
Page 459
10.4.3. The Node-Cover Problem
Page 463
10.4.4. The Directed Hamilton-Circuit Problem
Page 465
10.4.5. Undirected Hamilton Circuits and the TSP
Page 471
10.4.6. Summary of NP-Complete Problems
Page 473
10.4.7. Exercises for Section 10.4
Page 473
10.5. Summary of Chapter 10
Page 477
10.6. Gradiance Problems for Chapter 10
Page 478
10.7. References for Chapter 10
Page 481
11. Additional Classes of Problems
Page 483
11.1. Complements of Languages in NP
Page 484
11.1.1. The Class of Languages Co-NP
Page 484
11.1.2. NP-Complete Preblems and Co-NP
Page 485
11.1.3. Exercises for Section 11.1
Page 486
11.2. Problems Solvable in Polynomial Space
Page 487
11.2.1. Polynomial-Space Turing Machines
Page 487
11.2.2. Relationship of PS and NPS to Previously Defined Classes
Page 488
11.2.3. Deterministic and Nondeterministic Polynomial Space
Page 490
11.3. A Problem That Is Complete for PS
Page 492
11.3.1. PS-Completeness
Page 492
11.3.2. Quantified Boolean Formulas
Page 493
11.3.3. Evaluating Quantified Boolean Formulas
Page 494
11.3.4. PS-Completeness of the QBF Problem
Page 496
11.3.5. Exercises for Section 11.3
Page 501
11.4. Language Classes Based on Randomization
Page 501
11.4.1. Quicksort: an Example of a Randomized Algorithm
Page 502
11.4.2. A Turing-Machine Model using Randomization
Page 503
11.4.3. The Language of a Randomized Turing Machine
Page 504
11.4.4. The Class RP
Page 508
11.4.5. Recognizing Languages in RP
Page 508
11.4.6. The Class ZPP
Page 509
11.4.7. Relationship Between RP and ZPP
Page 510
11.4.8. Relationships to the Classes P and NP
Page 511
11.5. The Complexity of Primality Testing
Page 512
11.5.1. The Importance of Testing Primality
Page 512
11.5.2. Introduction to Modular Arithmetic
Page 514
11.5.3. The Complexity of Modular-Arithmetic Computations
Page 516
11.5.4. Random-Polynomial Primality Testing
Page 517
11.5.5. Nondeterministic Primality Tests
Page 518
11.5.6. Exercises for Section 11.5
Page 521
11.6. Summary of Chapter 11
Page 522
11.7. Gradiance Problems for Chapter 11
Page 523
11.8. References for Chapter 11
Page 524
Index
Page 527

Edition Notes

Published in
USA
Copyright Date
2007

Classifications

Library of Congress
QA267 .H56 2006, QA267 .H56 2007, QA267.H56 2006

Contributors

Author
Rajeev Motwani
Author
Jeffrey D. Ullman

The Physical Object

Format
Hardcover
Pagination
xvii, 535p
Number of pages
535

ID Numbers

Open Library
OL24357442M
ISBN 10
0321455363
LCCN
2006014263
OCLC/WorldCat
69013079

Community Reviews (0)

Feedback?
No community reviews have been submitted for this work.

History

Download catalog record: RDF / JSON / OPDS | Wikipedia citation
September 24, 2024 Edited by MARC Bot import existing book
February 25, 2024 Edited by OL-00 Edited without comment.
December 19, 2023 Edited by ImportBot import existing book
October 20, 2023 Edited by Drini Fix TOC
September 12, 2010 Created by C. A. Russell Added new book.