Introduction to Languages and the Theory of Computation,3E [Special Indian Edition]
John Martin,
North Dakota State University
ISBN: 0070660484 Copyright year: 2007
Table of Contents
Preface ixIntroduction xi
P A R T I
Mathematical Notation and Techniques 1
C H A P T E R 1 Basic Mathematical Objects 31.1 Sets 3 1.2 Logic 9 1.3 Functions 17 1.4 Relations 22 1.5 Languages 28 Exercises 32 More Challenging Problems 39C H A P T E R 2 Mathematical Induction and Recursive Definitions 432.1 Proofs 43 2.2 The Principle of Mathematical Induction 48 2.3 The Strong Principle of Mathematical Induction 55 2.4 Recursive Definitions 58 2.5 Structural Induction 66 Exercises 72 More Challenging Problems 77
P A R T II
Regular Languages and Finite Automata 83
C H A P T E R 3 Regular Expressions and Finite Automata 853.1 Regular Languages and Regular Expressions 85 3.2 The Memory Required to Recognize a Language 90 3.3 Finite Automata 95 3.4 Distinguishing One String from Another 105 3.5 Unions, Intersections, and Complements 109 Exercises 112 More Challenging Problems 118C H A P T E R 4 Nondeterminism and Kleene's Theorem 1234.1 Nondeterministic Finite Automata 123 4.2 Nondeterministic Finite Automata with Λ-Transitions 133 4.3 Kleene's Theorem 145 Exercises 156 More Challenging Problems 164C H A P T E R 5 Regular and Nonregular Languages 1685.1 A Criterion for Regularity 168 5.2 Minimal Finite Automata 175 5.3 The Pumping Lemma for Regular Languages 180 5.4 Decision Problems 186 5.5 Regular Languages and Computers 189 Exercises 191 More Challenging Problems 196
P A R T III
Context-Free Languages and Pushdown Automata 201
C H A P T E R 6 Context-Free Grammars 2036.1 Examples and Definitions 203 6.2 More Examples 210 6.3 Regular Grammars 217 6.4 Derivation Trees and Ambiguity 220 6.5 An Unambiguous CFG for Algebraic Expressions 226 6.6 Simplified Forms and Normal Forms 232 Exercises 240 More Challenging Problems 247C H A P T E R 7 Pushdown Automata 2517.1 Introduction byWay of an Example 251 7.2 The Definition of a Pushdown Automaton 255 7.3 Deterministic Pushdown Automata 260 7.4 APDACorresponding to a Given Context-Free Grammar 265 7.5 A Context-Free Grammar Corresponding to a Given PDA 273 7.6 Parsing 280 Exercises 290 More Challenging Problems 295C H A P T E R 8 Context-Free and Non-Context-Free Languages 2978.1 The Pumping Lemma for Context-Free Languages 297 8.2 Intersections and Complements of Context-Free Languages 306 8.3 Decision Problems Involving Context-Free Languages 311 Exercises 312 More Challenging Problems 314
P A R T IV
Turing Machines and Their Languages 317
C H A P T E R 9 Turing Machines 3199.1 Definitions and Examples 319 9.2 Computing a Partial Function with a Turing Machine 328 9.3 Combining Turing Machines 332 9.4 Variations of Turing Machines: Multitape TMs 337 9.5 Nondeterministic Turing Machines 341 9.6 Universal Turing Machines 347 9.7 Models of Computation and the Church-Turing Thesis 352 Exercises 354 More Challenging Problems 361C H A P T E R 10 Recursively Enumerable Languages 36510.1 Recursively Enumerable and Recursive 365 10.2 Enumerating a Language 368 10.3 More General Grammars 371 10.4 Context-Sensitive Languages and the Chomsky Hierarchy 380 10.5 Not All Languages are Recursively Enumerable 387 Exercises 397 More Challenging Problems 401
P A R T V
Unsolvable Problems and Computable Functions 405
C H A P T E R 11 Unsolvable Problems 40711.1 A Nonrecursive Language and an Unsolvable Problem 407 11.2 Reducing One Problem to Another: The Halting Problem 411 11.3 Other Unsolvable Problems Involving TMs 416 11.4 Rice's Theorem and More Unsolvable Problems 419 11.5 Post's Correspondence Problem 422 11.6 Unsolvable Problems Involving Context-Free Languages 430 Exercises 436 More Challenging Problems 439C H A P T E R 12 Computable Functions 44212.1 Primitive Recursive Functions 442 12.2 Primitive Recursive Predicates and Some Bounded Operations 451 12.3 Unbounded Minimalization and µ-Recursive Functions 459 12.4 Gödel Numbering 461 12.5 All Computable Functions Are µ-Recursive 465 12.6 Nonnumeric Functions, and Other Approaches to Computability 470 Exercises 474 More Challenging Problems 477
P A R T VI
Introduction to Computational Complexity 479
C H A P T E R 13 Measuring and Classifying Complexity 48113.1 Growth Rates of Functions 481 13.2 Time and Space Complexity of a Turing Machine 486 13.3 Complexity Classes 492 Exercises 497 More Challenging Problems 499C H A P T E R 14 Tractable and Intractable Problems 50014.1 Tractable and Possibly Intractable Problems: P and NP 500 14.2 Polynomial-Time Reductions and NP-Completeness 506 14.3 Cook's Theorem 510 14.4 Some Other NP-Complete Problems 517 Exercises 522 More Challenging Problems 524References 527
Bibliography 529
Index of Notation 531
Index 535