Theory of computation / George Tourlakis.

By: Tourlakis, George J [author]
Language: English Hoboken, New Jersey : John Wiley & Sons, Inc., 2012Description: 1 online resource (416 pages)Content type: text Media type: computer Carrier type: online resource ISBN: 9781118315354 ( epub); 9781118315330 (pdf); 9781118315347 (emobi)Subject(s): Computable functions | Functional programming languages | MATHEMATICS / Discrete MathematicsGenre/Form: Electronic books.DDC classification: 511.352 LOC classification: QA9.59Other classification: MAT008000 Online resources: Full text available at Wiley Online Library Click here to view
Contents:
Preface xi 1. Mathematical Foundations 1 1.1 Sets and Logic; Naïvely 1 1.2 Relations and Functions 40 1.3 Big and Small Infinite Sets; Diagonalization 52 1.4 Induction from a User’s Perspective 61 1.5 Why Induction Ticks 68 1.6 Inductively Defined Sets 1.7 Recursive Definitions of Functions 1.8 Additional Exercises 85 2. Algorithms, Computable Functions and Computations 91 2.1 A Theory of Computability 91 2.2 A programming Formalism for the Primitive Recursive Functions Function Class 147 2.3 URM Computations and their Arithmetization 141 2.4 A double-recursion that leads outside the Primitive Recursive Function Class 2.5 Semi-computable Relations: Unsolvability 2.6 The Iteration Theorem of Kleene 172 2.7 Diagonalization Revisited; Unsolvability via Reductions 175 2.8 Productive and Creative Sets 209 2.9 The Recursion Theorem 214 2. 10 Completeness 217 2.11 Unprovability from Unsolvability 221 2.12 Additional Exercises 234 3. A Subset of the URM Language; FA and NFA 241 3.1 Deterministic Finite Automata and their Languages 243 3.2 Nondeterministic Finite Automata 3.3 Regular Expressions 266 3.4 Regular Grammars and Languages 277 3.5 Additional Exercises 287 4. Adding a stack of a NFA: Pushdown Automata 4.1 The PDA 294 4.2 PDA Computations 294 4.3 The PDA-acceptable Languages are the Context Free Languages 305 4.4 Non-Context Free Languages; Another Pumping Lemma 312 4.5 Additional Exercise 322 5. Computational Complexity 325 5.1 Adding a second stack; Turning Machines 325 5.2 Axt, loop program, and Grzegorczyk hierarchies 5.3 Additional Exercised
Summary: "In the (meta)theory of computing, the fundamental questions of the limitations of computing are addressed. These limitations, which are intrinsic rather than technology dependent, may immediatly rule out the existence of algorithmic solutions for some problems while for others they rule out efficient solutions. The author's approach is anchored on the concrete (and assumed) practical knowledge about general computer programming, attained readers in a first year programming course, as well as the knowledge of discrete mathematics at the same level. The book develops the metatheory of general computing and builds on the reader's prior computing experience. Metatheory via the programming formalism known as Shepherdson-Sturgis Unbounded Register Machines (URM)--a straightforward abstraction of modern highlevel programming languages--is developed. Restrictions of the URM programming language are also discussed. The author has chosen to focus on the highlevel language approach of URMs as opposed to the Turing Machine since URMs relate more directly to programming learned in prior experiences. The author presents the topics of automata and languages only after readers become familiar, to some extent, with the (general) computability theory including the special computability theory of more "practical" functions, the primitive recursive functions. Automata are presented as a very restricted programming formalism, and their limitations (in expressivity) and their associated languages are studied. In addition, this book contains tools that, in principle, can search a set of algorithms to see whether a problem is solvable, or more specifically, if it can be solved by an algorithm whose computations are efficient. Chapter coverage includes: Mathematical Background; Algorithms, Computable Functions, and Computations; A Subset of the URM Language: FA and NFA; and Adding a Stack to an NFA: Pushdown Automata"-- Provided by publisher.Summary: 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.Summary: "The book develops the metatheory of general computing and builds on the reader's prior computing experience. Metatheory via the programming formalism known as Shepherdson-Sturgis Unbounded Register Machines (URM)--a straightforward abstraction of modern high-level programming languages--is developed. Restrictions of the URM programming language are also discussed. The author has chosen to focus on the high-level language approach of URMs as opposed to the Turing Machine since URMs relate more directly to programming learned in prior experiences"-- Provided by publisher.
Tags from this library: No tags from this library for this title. Log in to add tags.
    Average rating: 0.0 (0 votes)
Item type Current location Home library Call number Status Date due Barcode Item holds
EBOOK EBOOK COLLEGE LIBRARY
COLLEGE LIBRARY
LIC Gateway
511.352 T6459 2012 (Browse shelf) Available CL-50523
Total holds: 0

ABOUT THE AUTHOR
George Tourlakis, PHD, is University Professor of Computer Science and Engineering at York University in Toronto, Canada. He has published extensively in his areas of research interest, which include calculational logic, modal logic, computability, and complexity theory. Dr. Tourlakis is the author of Mathematical Logic, also published by Wiley.

Includes bibliographical references and index.

Preface xi
1. Mathematical Foundations 1

1.1 Sets and Logic; Naïvely 1

1.2 Relations and Functions 40

1.3 Big and Small Infinite Sets; Diagonalization 52

1.4 Induction from a User’s Perspective 61

1.5 Why Induction Ticks 68

1.6 Inductively Defined Sets

1.7 Recursive Definitions of Functions

1.8 Additional Exercises 85

2. Algorithms, Computable Functions and Computations 91

2.1 A Theory of Computability 91

2.2 A programming Formalism for the Primitive Recursive Functions Function Class 147

2.3 URM Computations and their Arithmetization 141

2.4 A double-recursion that leads outside the Primitive Recursive Function Class

2.5 Semi-computable Relations: Unsolvability

2.6 The Iteration Theorem of Kleene 172

2.7 Diagonalization Revisited; Unsolvability via Reductions 175

2.8 Productive and Creative Sets 209

2.9 The Recursion Theorem 214

2. 10 Completeness 217

2.11 Unprovability from Unsolvability 221

2.12 Additional Exercises 234

3. A Subset of the URM Language; FA and NFA 241

3.1 Deterministic Finite Automata and their Languages 243

3.2 Nondeterministic Finite Automata

3.3 Regular Expressions 266

3.4 Regular Grammars and Languages 277

3.5 Additional Exercises 287

4. Adding a stack of a NFA: Pushdown Automata

4.1 The PDA 294

4.2 PDA Computations 294

4.3 The PDA-acceptable Languages are the Context Free Languages 305

4.4 Non-Context Free Languages; Another Pumping Lemma 312

4.5 Additional Exercise 322

5. Computational Complexity 325

5.1 Adding a second stack; Turning Machines 325

5.2 Axt, loop program, and Grzegorczyk hierarchies

5.3 Additional Exercised

"In the (meta)theory of computing, the fundamental questions of the limitations of computing are addressed. These limitations, which are intrinsic rather than technology dependent, may immediatly rule out the existence of algorithmic solutions for some problems while for others they rule out efficient solutions. The author's approach is anchored on the concrete (and assumed) practical knowledge about general computer programming, attained readers in a first year programming course, as well as the knowledge of discrete mathematics at the same level. The book develops the metatheory of general computing and builds on the reader's prior computing experience. Metatheory via the programming formalism known as Shepherdson-Sturgis Unbounded Register Machines (URM)--a straightforward abstraction of modern highlevel programming languages--is developed. Restrictions of the URM programming language are also discussed. The author has chosen to focus on the highlevel language approach of URMs as opposed to the Turing Machine since URMs relate more directly to programming learned in prior experiences. The author presents the topics of automata and languages only after readers become familiar, to some extent, with the (general) computability theory including the special computability theory of more "practical" functions, the primitive recursive functions. Automata are presented as a very restricted programming formalism, and their limitations (in expressivity) and their associated languages are studied. In addition, this book contains tools that, in principle, can search a set of algorithms to see whether a problem is solvable, or more specifically, if it can be solved by an algorithm whose computations are efficient. Chapter coverage includes: Mathematical Background; Algorithms, Computable Functions, and Computations; A Subset of the URM Language: FA and NFA; and Adding a Stack to an NFA: Pushdown Automata"-- Provided by publisher.

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.

"The book develops the metatheory of general computing and builds on the reader's prior computing experience. Metatheory via the programming formalism known as Shepherdson-Sturgis Unbounded Register Machines (URM)--a straightforward abstraction of modern high-level programming languages--is developed. Restrictions of the URM programming language are also discussed. The author has chosen to focus on the high-level language approach of URMs as opposed to the Turing Machine since URMs relate more directly to programming learned in prior experiences"-- Provided by publisher.

500-599 511

Description based on print version record and CIP data provided by publisher.

There are no comments for this item.

to post a comment.