ABSTRACT

Automata and Computability is a class-tested textbook which provides a comprehensive and accessible introduction to the theory of automata and computation. The author uses illustrations, engaging examples, and historical remarks to make the material interesting and relevant for students. It incorporates modern/handy ideas, such as derivative-based parsing and a Lambda reducer showing the universality of Lambda calculus. The book also shows how to sculpt automata by making the regular language conversion pipeline available through a simple command interface. A Jupyter notebook will accompany the book to feature code, YouTube videos, and other supplements to assist instructors and students

Features

  • Uses illustrations, engaging examples, and historical remarks to make the material accessible
  • Incorporates modern/handy ideas, such as derivative-based parsing and a Lambda reducer showing the universality of Lambda calculus
  • Shows how to "sculpt" automata by making the regular language conversion pipeline available through simple command interface
  • Uses a mini functional programming (FP) notation consisting of lambdas, maps, filters, and set comprehension (supported in Python) to convey math through PL constructs that are succinct and resemble math
  • Provides all concepts are encoded in a compact Functional Programming code that will tesselate with Latex markup and Jupyter widgets in a document that will accompany the books. Students can run code effortlessly href="https://github.com/ganeshutah/Jove.git/"here.

part I|1 pages

Foundations

chapter 1|12 pages

What Machines Think

part II|1 pages

Machines

chapter 4|16 pages

Basics of DFA

chapter 5|10 pages

Designing DFA

chapter 6|14 pages

Operations on DFA

chapter 7|12 pages

Nondeterministic Finite Automata

chapter 8|20 pages

Regular Expressions and NFA

chapter 9|11 pages

NFA to RE Conversion

chapter 10|10 pages

Derivative-Based Regular Expression Matching

chapter 11|23 pages

Context-Free Languages and Grammars

chapter 12|22 pages

Pushdown Automata

chapter 13|24 pages

Turing Machines

part III|1 pages

Concepts

chapter 14|17 pages

Interplay between Formal Languages

chapter 16|25 pages

NP-Completeness

chapter 17|11 pages

Binary Decision Diagrams as Minimal DFA

chapter 18|16 pages

Computability Using Lambdas