Computability and Complexity: From a Programming Perspective

Front Cover
MIT Press, 1997 - Computers - 466 pages
0 Reviews
"Neil Jones is one of the precious few computer scientists with great expertise and leadership roles in both formal methods and complexity. This makes his book especially valuable."
-- Yuri Gurevich, Professor of Computer Science, University of Michigan Computability and complexity theory should be of central concern to practitioners as well as theorists. Unfortunately, however, the field is known for its impenetrability. Neil Jones's goal as an educator and author is to build a bridge between computability and complexity theory and other areas of computer science, especially programming. In a shift away from the Turing machine- and G÷ del number-oriented classical approaches, Jones uses concepts familiar from programming languages to make computability and complexity more accessible to computer scientists and more applicable to practical programming problems.

According to Jones, the fields of computability and complexity theory, as well as programming languages and semantics, have a great deal to offer each other. Computability and complexity theory have a breadth, depth, and generality not often seen in programming languages. The programming language community, meanwhile, has a firm grasp of algorithm design, presentation, and implementation. In addition, programming languages sometimes provide computational models that are more realistic in certain crucial aspects than traditional models.

New results in the book include a proof that constant time factors do matter for its programming-oriented model of computation. (In contrast, Turing machines have a counterintuitive "constant speedup" property: that almost anyprogram can be made to run faster, by any amount. Its proof involves techniques irrelevant to practice.) Further results include simple characterizations in programming terms of the central complexity classes PTIME and LOGSPACE, and a new approach to complete problems for NLOGSPACE, PTIME, NPTIME, and PSPACE, uniformly based on Boolean programs.

"Foundations of Computing series"

 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

Introduction
3
The WHILE Language
27
Programs as Data Objects
47
Universal Programs for WHILE and I
69
Metaprogramming Selfapplication and Compiler Generation
89
Other Sequential Models of Computation
111
Robustness of Computability
127
Some Natural Unsolvable Problems
151
Overview of Complexity Theory
239
Time Usage of Treemanipulating Programs
261
Linear and Other Time Hierarchies for WHILE Programs
285
Spacebounded Computations
315
Nondeterministic Computations
331
Characterizations of LOGSPACE and PTIME by GOTO Programs
349
Completeness and Reduction of One Problem to Another
365
Complete Problems for PTIME
383

Hilberts Tenth Problem by M H Serensen
167
Inference Systems and Godels Incompleteness Theorem
187
Computability Theory Based on Numbers
205
More Abstract Approaches to Computability
215
Complete Problems for NPTIME
397
Appendix
412
Bibliography
447
Copyright

Common terms and phrases

References to this book

All Book Search results »

About the author (1997)

Neil D. Jones is Professor of Computer Science at the University of Copenhagen.

Bibliographic information