This book is based on a course of ten one-hour lectures given by the author to third year computer science and computer systems engineering students at the University of Kent. . . . My main aim was to show that systems, of which students had some experience, were capable of mathematical manipulation of a fairly non-trivial kind, that they are not obdurate monoliths approachable only by the dubious intuition of the ‘real programmer’. In other words, I attempted to present automata theory as a rudimentary formal theory of systems.
--From the Preface
This book focuses on relations between machines: implementation, equivalence, composition, and decomposition. It expounds the beautiful structure theory developed by Hartmanis and Stearns, but is much easier to read than the algebraic treatment in their book [1]. Two chapters show the extension of this approach to concurrent systems (specifically, to Petri nets and CCS).
A list of the chapter headings follows.
:9N(1) Great Aunt Eugenia and Other Automata
(2) Sundry Machines
(3) Implementing Finite Automata
(4) Implementation and Realisation
(5) Behavioural Equivalence, SP Partitions and Reduced Machines
(6) Parallel and Serial Composition of Automata
(7) The Parallel Decomposition Theorem
(8) The Serial Decomposition Theorem
(9) The Lattice of SP Partitions
(10) Analysis of Machines
(11) Concurrent Systems: Net Theory
(12) Concurrent Systems: The Calculus of Communicating Systems
The author succeeds admirably in his aims: the book serves as a worthy foil to the heavily language-theoretic viewpoint of standard textbooks such as Hopcroft and Ullman [2]. For a one-semester course, the teacher may add some formal language theory to build a rigorous course on finite state machines. Alternately, more material on concurrency could be added to form an advanced course on sequential and concurrent machines.