Learn the skills and acquire the intuition to assess the
theoretical limitations of computer programming
Offering an accessible approach to the topic, Theory of
Computation focuses on the metatheory of computing and the
theoretical boundaries between what various computational models
can do and not do–from the most general model, the URM
(Unbounded Register Machines), to the finite automaton. A wealth of
programming-like examples and easy-to-follow explanations build the
g...
Learn the skills and acquire the intuition to assess the
theoretical limitations of computer programming
Offering an accessible approach to the topic, Theory of
Computation focuses on the metatheory of computing and the
theoretical boundaries between what various computational models
can do and not do–from the most general model, the URM
(Unbounded Register Machines), to the finite automaton. A wealth of
programming-like examples and easy-to-follow explanations build the
general theory gradually, which guides readers through the modeling
and mathematical analysis of computational phenomena and provides
insights on what makes things tick and also what restrains the
ability of computational processes.
Recognizing the importance of acquired practical experience, the
book begins with the metatheory of general purpose computer
programs, using URMs as a straightforward, technology-independent
model of modern high-level programming languages while also
exploring the restrictions of the URM language. Once readers gain
an understanding of computability theory–including the
primitive recursive functions–the author presents automata
and languages, covering the regular and context-free languages as
well as the machines that recognize these languages. Several
advanced topics such as reducibilities, the recursion theorem,
complexity theory, and Cook’s theorem are also discussed. Features
of the book include:
* A review of basic discrete mathematics, covering logic and
induction while omitting specialized combinatorial topics
* A thorough development of the modeling and mathematical analysis
of computational phenomena, providing a solid foundation of
un-computability
* The connection between un-computability and un-provability:
Gödel’s first incompleteness theorem
The book provides numerous examples of specific URMs as well as
other programming languages including Loop Programs, FA
(Deterministic Finite Automata), NFA (Nondeterministic Finite
Automata), and PDA (Pushdown Automata). Exercises at the end of
each chapter allow readers to test their comprehension of the
presented material, and an extensive bibliography suggests
resources for further study.
Assuming only a basic understanding of general computer
programming and discrete mathematics, Theory of Computation
serves as a valuable book for courses on theory of computation at
the upper-undergraduate level. The book also serves as an excellent
resource for programmers and computing professionals wishing to
understand the theoretical limitations of their craft.