Introduction to Languages and the Theory of Computation helps students make the connection between the practice of computing and an understanding of the profound ideas that defines it. The book's organization and the author's ability to explain complex topics clearly make this introduction to the theory of computation an excellent resource for a broad range of upper level students. The author has learned through many years of teaching that the best way to present theoretical concepts is to take advantage of the precision and clarity of mathematical language. In a way that is accessible to students still learning this language, he presents the necessary mathematical tools gently and gradually which provides discussion and examples that make the language intelligible.
Preface Introduction
Chapter 1: Mathematical Tools and Techniques
Chapter 2: Finite Automata and the Languages They Accept
Chapter 3: Regular
Expressions, Nondeterminism, and Kleene's Theorem
Chapter 4: Context-Free
Languages
Chapter 5: Pushdown Automata
Chapter 6: Context-Free and
Non-Context-Free Languages
Chapter 7: Turing Machines
Chapter 8:
Recursively Enumerable Languages
Chapter 9: Undecidable Problems
Chapter 10:
Computable Functions
Chapter 11: Introduction to Computational Complexity
Index