Book description
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 programminglike examples and easytofollow 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, technologyindependent model of modern highlevel 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 contextfree 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 uncomputability
The connection between uncomputability and unprovability: 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 upperundergraduate level. The book also serves as an excellent resource for programmers and computing professionals wishing to understand the theoretical limitations of their craft.
Table of contents
 Coverpage
 Titlepage
 Copyright
 Dedication
 Contents
 Preface
 1 Mathematical Foundations

2 Algorithms, Computable Functions and Computations
 2.1 A Theory of Computability
 2.2 A Programming Formalism for the Primitive Recursive Functions
 2.3 URM Computations and their Arithmetization
 2.4 A Double Recursion that Leads Outside the Primitive Recursive Function Class
 2.5 Semicomputable Relations; Unsolvability
 2.6 The Iteration Theorem of Kleene
 2.7 Diagonalization Revisited; Unsolvability via Reductions
 2.8 Productive and Creative Sets
 2.9 The Recursion Theorem
 2.10 Completeness
 2.11 Unprovability from Unsolvability
 2.12 Additional Exercises
 3 A Subset of the URM Language; FA and NFA
 4 Adding a Stack to a NFA: Pushdown Automata
 5 Computational Complexity
 Bibliography
 Index
Product information
 Title: Theory of Computation
 Author(s):
 Release date: April 2012
 Publisher(s): Wiley
 ISBN: 9781118014783
You might also like
book
Operating System Concepts, 9th Edition
, now in its ninth edition, continues to provide a solid theoretical foundation for understanding operating …
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
book
HandsOn Machine Learning with ScikitLearn, Keras, and TensorFlow, 2nd Edition
Through a series of recent breakthroughs, deep learning has boosted the entire field of machine learning. …
book
Data Science from Scratch, 2nd Edition
To really learn data science, you should not only master the tools—data science libraries, frameworks, modules, …