An Introduction to Formal Languages and Automata, 7th Edition

Book description

An Introduction to Formal Languages and Automata, Seventh Edition is designed for an introductory course on formal languages, automata, compatibility, and related matters forming what is known as the theory of computation.

Table of contents

  1. Cover
  2. Title Page
  3. Copyright Page
  4. Dedication
  5. Contents
  6. Preface
  7. 1 INTRODUCTION TO THE THEORY OF COMPUTATION
    1. 1.1 Mathematical Preliminaries and Notation
      1. Sets
      2. Functions and Relations
      3. Graphs and Trees
      4. Proof Techniques
    2. 1.2 Three Basic Concepts
      1. Languages
      2. Grammars
      3. Automata
    3. 1.3 Some Applications*
  8. 2 FINITE AUTOMATA
    1. 2.1 Deterministic Finite Accepters
      1. Deterministic Accepters and Transition Graphs
      2. Languages and Dfa’s
      3. Regular Languages
    2. 2.2 Nondeterministic Finite Accepters
      1. Definition of a Nondeterministic Accepter
      2. Why Nondeterminism?
    3. 2.3 Equivalence of Deterministic and Nondeterministic Finite Accepters
    4. 2.4 Reduction of the Number of States in Finite Automata*
  9. 3 REGULAR LANGUAGES AND REGULAR GRAMMARS
    1. 3.1 Regular Expressions
      1. Formal Definition of a Regular Expression
      2. Languages Associated with Regular Expressions
    2. 3.2 Connection Between Regular Expressions and Regular Languages
      1. Regular Expressions Denote Regular Languages
      2. Regular Expressions for Regular Languages
      3. Regular Expressions for Describing Simple Patterns
    3. 3.3 Regular Grammars
      1. Right- and Left-Linear Grammars
      2. Right-Linear Grammars Generate Regular Languages
      3. Right-Linear Grammars for Regular Languages
      4. Equivalence of Regular Languages and Regular Grammars
  10. 4 PROPERTIES OF REGULAR LANGUAGES
    1. 4.1 Closure Properties of Regular Languages
      1. Closure under Simple Set Operations
      2. Closure under Other Operations
    2. 4.2 Elementary Questions about Regular Languages
    3. 4.3 Identifying Nonregular Languages
      1. Using the Pigeonhole Principle
      2. A Pumping Lemma
  11. 5 CONTEXT-FREE LANGUAGES
    1. 5.1 Context-Free Grammars
      1. Examples of Context-Free Languages
      2. Leftmost and Rightmost Derivations
      3. Derivation Trees
      4. Relation Between Sentential Forms and Derivation Trees
    2. 5.2 Parsing and Ambiguity
      1. Parsing and Membership
      2. Ambiguity in Grammars and Languages
    3. 5.3 Context-Free Grammars and Programming Languages
  12. 6 SIMPLIFICATION OF CONTEXT-FREE GRAMMARS AND NORMAL FORMS
    1. 6.1 Methods for Transforming Grammars
      1. A Useful Substitution Rule
      2. Removing Useless Productions
      3. Removing λ-Productions
      4. Removing Unit-Productions
    2. 6.2 Two Important Normal Forms
      1. Chomsky Normal Form
      2. Greibach Normal Form
    3. 6.3 A Membership Algorithm for Context-Free Grammars*
  13. 7 PUSHDOWN AUTOMATA
    1. 7.1 Nondeterministic Pushdown Automata
      1. Definition of a Pushdown Automaton
      2. The Language Accepted by a Pushdown Automaton
    2. 7.2 Pushdown Automata and Context-Free Languages
      1. Pushdown Automata for Context-Free Languages
      2. Context-Free Grammars for Pushdown Automata
    3. 7.3 Deterministic Pushdown Automata and Deterministic Context-Free Languages
    4. 7.4 Grammars for Deterministic Context-Free Languages*
  14. 8 PROPERTIES OF CONTEXT-FREE LANGUAGES
    1. 8.1 Two Pumping Lemmas
      1. A Pumping Lemma for Context-Free Languages
      2. A Pumping Lemma for Linear Languages
    2. 8.2 Closure Properties and Decision Algorithms for Context-Free Languages
      1. Closure of Context-Free Languages
      2. Some Decidable Properties of Context-Free Languages
  15. 9 TURING MACHINES
    1. 9.1 The Standard Turing Machine
      1. Definition of a Turing Machine
      2. Turing Machines as Language Accepters
      3. Turing Machines as Transducers
    2. 9.2 Combining Turing Machines for Complicated Tasks
    3. 9.3 Turing’s Thesis
  16. 10 OTHER MODELS OF TURING MACHINES
    1. 10.1 Minor Variations on the Turing Machine Theme
      1. Equivalence of Classes of Automata
      2. Turing Machines with a Stay-Option
      3. Turing Machines with Semi-Infinite Tape
      4. The Off-Line Turing Machine
    2. 10.2 Turing Machines with More Complex Storage
      1. Multitape Turing Machines
      2. Multidimensional Turing Machines
    3. 10.3 Nondeterministic Turing Machines
    4. 10.4 A Universal Turing Machine
    5. 10.5 Linear Bounded Automata
  17. 11 A HIERARCHY OF FORMAL LANGUAGES AND AUTOMATA
    1. 11.1 Recursive and Recursively Enumerable Languages
      1. Languages That Are Not Recursively Enumerable
      2. A Language That Is Not Recursively Enumerable
      3. A Language That Is Not Recursively Enumerable but Not Recursive
    2. 11.2 Unrestricted Grammars
    3. 11.3 Context-Sensitive Grammars and Languages
      1. Context-Sensitive Languages and Linear Bounded Automata
      2. Relation Between Recursive and Context-Sensitive Languages
    4. 11.4 The Chomsky Hierarchy
  18. 12 LIMITS OF ALGORITHMIC COMPUTATION
    1. 12.1 Some Problems That Cannot Be Solved by Turing Machines
      1. Computability and Decidability
      2. The Turing Machine Halting Problem
      3. Reducing One Undecidable Problem to Another
    2. 12.2 Undecidable Problems for Recursively Enumerable Languages
    3. 12.3 The Post Correspondence Problem
    4. 12.4 Undecidable Problems for Context-Free Languages
    5. 12.5 A Question of Efficiency
  19. 13 OTHER MODELS OF COMPUTATION
    1. 13.1 Recursive Functions
      1. Primitive Recursive Functions
      2. Ackermann’s Function
      3. μ Recursive Functions
    2. 13.2 Post Systems
    3. 13.3 Rewriting Systems
      1. Matrix Grammars
      2. Markov Algorithms
      3. L-Systems
  20. 14 AN OVERVIEW OF COMPUTATIONAL COMPLEXITY
    1. 14.1 Efficiency of Computation
    2. 14.2 Turing Machine Models and Complexity
    3. 14.3 Language Families and Complexity Classes
    4. 14.4 The Complexity Classes P and NP
    5. 14.5 Some NP Problems
    6. 14.6 Polynomial-Time Reduction
    7. 14.7 NP-Completeness and an Open Question
  21. 15 COMPILERS AND PARSING
    1. 15.1 Compilers
    2. 15.2 Top-Down vs. Bottom-Up Parsing
    3. 15.3 FIRST Function
    4. 15.4 FOLLOW Function
  22. 16 LL PARSING
    1. 16.1 Context-Free Grammar Conversion to Nondeterministic Pushdown Automaton
      1. Pushdown Automata for LLParsing
      2. Algorithm to Convert Context-Free Grammar to NPDA for LLParsing
    2. 16.2 LL(1) Parse Table
      1. LL(1) Parse Table
    3. 16.3 LL(1) Parsing Algorithm
      1. LL(1) Parsing Algorithm
    4. 16.4 LL(k) Parsing
  23. 17 LR PARSING
    1. 17.1 Context-Free Grammar Conversion to NPDA
      1. Algorithm to Convert Context-Free Grammar to NPDA for LR Parsing
    2. 17.2 Items and Closure
    3. 17.3 DFA Models the LR Parsing Stack
      1. Algorithm to Build DFA Modeling LR Parsing
    4. 17.4 LR(1) Parse Table
      1. LR(1) Parsing Actions
      2. LR(1) Parse Table Algorithm
    5. 17.5 LR(1) Parsing Algorithm
      1. LR(1) Parsing Algorithm
    6. 17.6 LR(1) Parsing with λ-Productions
    7. 17.7 LR(1) Parsing Conflicts
  24. APPENDIX A FINITE-STATE TRANSDUCERS
    1. A.1 A General Framework
    2. A.2 Mealy Machines
    3. A.3 Moore Machines
    4. A.4 Moore and Mealy Machine Equivalence
    5. A.5 Mealy Machine Minimization
    6. A.6 Moore Machine Minimization
    7. A.7 Limitations of Finite-State Transducers
  25. APPENDIX B JFLAP: A USEFUL TOOL
  26. ANSWERS: SOLUTIONS AND HINTS FOR SELECTED EXERCISES
  27. REFERENCES FOR FURTHER READING
  28. INDEX

Product information

  • Title: An Introduction to Formal Languages and Automata, 7th Edition
  • Author(s): Peter Linz, Susan H. Rodger
  • Release date: February 2022
  • Publisher(s): Jones & Bartlett Learning
  • ISBN: 9781284231618