Title | Program Verification [electronic resource] : Fundamental Issues in Computer Science / edited by Timothy R. Colburn, James H. Fetzer, Terry L. Rankin |
---|---|

Imprint | Dordrecht : Springer Netherlands : Imprint: Springer, 1993 |

Connect to | http://dx.doi.org/10.1007/978-94-011-1793-7 |

Descript | XIII, 458 p. online resource |

SUMMARY

Among the most important problems confronting computer science is that of developing a paradigm appropriate to the discipline. Proponents of formal methods - such as John McCarthy, C.A.R. Hoare, and Edgar Dijkstra - have advanced the position that computing is a mathematical activity and that computer science should model itself after mathematics. Opponents of formal methods - by contrast, suggest that programming is the activity which is fundamental to computer science and that there are important differences that distinguish it from mathematics, which therefore cannot provide a suitable paradigm. Disagreement over the place of formal methods in computer science has recently arisen in the form of renewed interest in the nature and capacity of program verification as a method for establishing the reliability of software systems. A paper that appeared in Communications of the ACM entitled, ̀Program Verification: The Very Idea', by James H. Fetzer triggered an extended debate that has been discussed in several journals and that has endured for several years, engaging the interest of computer scientists (both theoretical and applied) and of other thinkers from a wide range of backgrounds who want to understand computer science as a domain of inquiry. The editors of this collection have brought together many of the most interesting and important studies that contribute to answering questions about the nature and the limits of computer science. These include early papers advocating the mathematical paradigm by McCarthy, Naur, R. Floyd, and Hoare (in Part I), others that elaborate the paradigm by Hoare, Meyer, Naur, and Scherlis and Scott (in Part II), challenges, limits and alternatives explored by C. Floyd, Smith, Blum, and Naur (in Part III), and recent work focusing on formal verification by DeMillo, Lipton, and Perlis, Fetzer, Cohn, and Colburn (in Part IV). It provides essential resources for further study. This volume will appeal to scientists, philosophers, and laypersons who want to understand the theoretical foundations of computer science and be appropriately positioned to evaluate the scope and limits of the discipline

CONTENT

Prologue -- Computer Science and Philosophy -- I / The Mathematical Paradigm -- Towards a Mathematical Science of Computation -- Proof of Algorithms by General Snapshots -- Assigning Meanings to Programs -- An Axiomatic Basis for Computer Programming -- II / Elaborating The Paradigm -- First Steps Towards Inferential Programming -- Mathematics of Programming -- On Formalism in Specifications -- Formalization in Program Development -- III / Challenges, Limits, and Alternatives -- Formalism and Prototyping in the Software Process -- Outline of a Paradigm Change in Software Engineering -- The Place of Strictly Defined Notation in Human Insight -- Limits of Correctness in Computers -- IV / Focus on Formal Verification -- Social Processes and Proofs of Theorems and Programs -- Program Verification: The Very Idea -- The Notion of Proof in Hardware Verification -- Program Verification, Defeasible Reasoning, and Two Views of Computer Science -- Epilogue -- Philosophical Aspects of Program Verification -- Selected Bibliography -- Index of Names -- Index of Subjects

Computer science
Philosophy and science
Software engineering
Artificial intelligence
Mathematical optimization
Computer Science
Artificial Intelligence (incl. Robotics)
Software Engineering/Programming and Operating Systems
Optimization
Philosophy of Science