Index / 001 EN
Introduction to Automata Theory, Languages, and Computation cover

Computer Science

Computer Science

Introduction to Automata Theory, Languages, and Computation

John E. Hopcroft; Rajeev Motwani; Jeffrey D. Ullman

A classic textbook on the theory of computation that presents finite automata, context-free grammars, Turing machines and the basics of undecidability and intractability. The third edition keeps the rigorous treatment of the original while adding more worked examples and practical motivation, and it remains a standard reference for the subject.

Prerequisites: A discrete mathematics course covering sets, relations, induction and proof techniques, plus some programming experience to appreciate the applications.

Difficulty Level
Intermediate
Academic Level
Undergraduate
automataformal languagescomputabilitycomplexitytheory of computationTextbook

01 / Reading Guide

Reading Guide

Citation

Hopcroft, J. E., Motwani, R., & Ullman, J. D. (2006). Introduction to Automata Theory, Languages, and Computation (3rd ed.). Pearson.

Chapter Summary

The third edition has eleven chapters in about 535 pages, so its chapters are long: the first, on the methods of the subject, runs for about 36 pages, and the second, on finite automata, for about 48. The book descends from Hopcroft and Ullman's 1979 text; Motwani joined for the second edition (2000), and the third edition appeared in 2006. Pearson describes this edition as updated to present theoretical concepts concisely and straightforwardly, with more hands-on, practical applications, and as coming originally with Gradiance, an online assessment tool that Pearson says is no longer available with the book. The chapter order follows the usual route of the subject: regular languages, then context-free languages, then Turing machines, undecidability and intractability.

Chapter 1: Automata: The Methods and the Madness

An introductory chapter of about 36 pages that sets up the subject before the first model is defined.

Chapter 2: Finite Automata

Finite automata as the first and simplest model of computation, at about 48 pages the longest of the opening chapters. The frequent terms listed for the book by Google Books include nondeterministic automata and "e-NFA", the extended nondeterministic form with empty-string moves.

Chapter 3: Regular Expressions and Languages

Regular expressions and the languages they describe, beginning on page 85.

Chapter 4: Properties of Regular Languages

The properties of regular languages, the first of two chapters with "Properties" in the title.

Chapter 5: Context-Free Grammars and Languages

Grammars as a second way of describing languages, with derivations and parse trees among the book's recurring terms.

Chapter 6: Pushdown Automata

The machine counterpart of context-free grammars, including deterministic pushdown automata (DPDA), which appear among the frequent terms of the text.

Chapter 7: Properties of Context-Free Languages

The counterpart of Chapter 4 for context-free languages.

Chapter 8: Introduction to Turing Machines

The Turing machine as the general model of computation, and the starting point for the chapters that follow.

Chapter 9: Undecidability

Problems that no algorithm can solve. The frequent terms listed by Google Books include the modified Post correspondence problem (MPCP).

Chapters 10–11: Intractable Problems; Additional Classes of Problems

Problems that can be solved in principle but not efficiently, followed by a closing chapter on further classes of problems. The frequent terms listed by Google Books include polynomial-time reduction, 3SAT, co-NP and the Hamilton circuit problem.

Key Concepts

Chapters 1–4: Regular Languages

  • Finite automata: the first model of computation, taught before grammars and machines.
  • Regular expressions: a notation for the same class of languages.
  • Properties of regular languages: closure and decision questions.

Chapters 5–7: Context-Free Languages

  • Context-free grammars and languages.
  • Pushdown automata: finite automata with a stack.
  • Properties of context-free languages.

Chapters 8–11: Computability and Complexity

  • Turing machines: the general model of computation.
  • Undecidability: problems no algorithm solves.
  • Intractable problems and additional classes of problems: the limits on efficient computation.

Critical Analysis

Strengths

  • A full path in eleven chapters. The contents run from finite automata through context-free languages and Turing machines to undecidability and intractability, so one book covers a whole undergraduate course.
  • Intractability is included. Chapters 10 and 11 cover intractable problems and further classes, whereas Kozen's chapter list stops at computability.
  • Presentation aims at accessibility. Pearson stresses concise, straightforward presentation and practical applications.
  • Long track record. Three editions between 1979 and 2006, with Hopcroft and Ullman as authors throughout, have made it an influential text in the subject.

Limitations

  • Less advanced theory than the older edition. Accounts of the book's history note that, beginning with the second edition, applications were extended and parts of the more advanced theory were removed. A course that needs the deeper material of the 1979 edition will want a supplementary text.
  • Long chapters. At 36 to 48 pages in the opening chapters, the book is less modular than a text organised in many short chapters.
  • Bundled online tool is gone. Gradiance, which accompanied the third edition, is no longer supported by Pearson, so any homework system built around it is unavailable.

Where It Fits in the Course

This is the classic, larger textbook on formal languages, automata and computability, and the most direct comparison is with Sipser's Introduction to the Theory of Computation, another clear upper-level introduction to automata, formal languages, computability and complexity. Either can serve as the main text. Kozen's Automata and Computability is a more compact alternative made of short chapters and goes further into topics such as Kleene algebra and Gödel's theorems, but stops before complexity.

Linz and Rodger's An Introduction to Formal Languages and Automata puts explanation and worked examples ahead of formalism and is a good companion for a student who wants more explanation. MacCormick's What Can Be Computed? approaches the same theory through Python programs, and Arora and Barak's Computational Complexity is the graduate-level continuation of Chapters 10 and 11.

How to Use This Book

Pearson's page does not state prerequisites; sets, relations, induction and proof are the sensible background, and programming experience helps with the practical motivation.

A practical plan:

  • Core: Chapters 1–4 for regular languages, Chapters 5–6 for context-free grammars and pushdown automata, and Chapters 8–9 for Turing machines and undecidability.
  • Lighter on a first pass: Chapters 4 and 7, the two "Properties" chapters, can be read lightly first and returned to when the proof techniques are familiar.
  • Optional: Chapters 10 and 11 if the course includes complexity, otherwise a complexity text.

Work through the exercises, and for each model (finite automaton, grammar, pushdown automaton, Turing machine) write a small example by hand and convert it into the equivalent model that the book teaches next.