< previous page page_x next page >
Page x
and is known as
language theory
. In language theory, the simplest algorithms are those which can be
implemented by finite automata, the subject of this book.
Finite automata were first studied in the 1950s by Stephen Kleene, and found a number of important
applications in computer science: for example, in the design of computer circuits, and in the lexical
analyzers of compilers. In the 1960s and 1970s, mathematicians such as Samuel Eilenberg, Marcel-Paul
Schützenberger, and John Rhodes pioneered the mathematics of finite automata. More recently, other
mathematicians have come to appreciate the usefulness of automata in such areas as combinatorial
group theory and symbolic dynamics.
This book is intended to be an introduction to the mathematical theory of finite automata, assuming as
background only a first course in discrete mathematics. The Appendix outlines the prerequisites.
Structure of the book
The book is notionally divided into two parts: Chapters 1 to 6 form the first part, and Chapters 7 to 12
the second; Chapter 7 is the bridge that links them.
PART I. This centres on Kleene’s Theorem, the first major result proved about finite automata. I
describe two different ways of proving this theorem with Chapter 1 common to both:
• The quickest route to proving Kleene’s Theorem is the following: Sections 3.1–3.3 for constructions
involving non-deterministic automata, Section 5.1 for the definition of regular expressions, and then
Theorem 5.2.1 of Section 5.2, which is the proof of Kleene’s Theorem itself. Chapter 2, omitting Section
2.5, can be regarded as a collection of examples.
• The route that emphasises algorithms more than proofs is the following: Sections 2.1–2.3 for practice
in designing automata, Sections 3.1 and 3.2 for the accessible subset construction, Section 4.1 and
Theorem 4.2.1 of Section 4.2 for
ε
-automata, Section 5.1 for regular expressions, and Section 5.3 for an
algorithmic proof of Kleene’s Theorem.
Section 2.6 on the Pumping Lemma can be read at any point after Chapter 1. Section 5.4 describes an
algebraic technique for converting automata into regular expressions based on solving equations.
Chapter 6, on local languages, describes a different way of converting regular expressions into automata
from that used in any of the above proofs of Kleene’s theorem.
PART II. This centres on the algebraic theory of recognisable languages, the main goals being
Schützenberger’s characterisation of star-free languages, and the Variety Theorem of Eilenberg and
Schützenberger. Chapters 7 and 8 have a strong algorithmic flavour, but Chapters 9–12 are increasingly
mathematical.
< previous page page_x next page >