Springer eBooks may be purchased by end-customers only and are sold without copy protection (DRM free). Instead, all eBooks include personalized watermarks. This means you can read the Springer eBooks across numerous devices such as Laptops, eReaders, and tablets.
You can pay for Springer eBooks with Visa, Mastercard, American Express or Paypal.
After the purchase you can directly download the eBook file or read it online in our Springer eBook Reader. Furthermore your eBook will be stored in your MySpringer account. So you can always re-download your eBooks.
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.
Series Preface. Prologue Computer Science and Philosophy; T.R. Colburn. Part I: The Mathematical Paradigm. Towards a Mathematical Science of Computation; J. McCarthy. Proof of Algorithms by General Snapshots; P. Naur. Assigning Meanings to Programs; R.W. Floyd. An Axiomatic Basis for Computer Programming; C.A.R. Hoare. Part II: Elaborating the Paradigm. First Steps towards Inferential Programming; W.L. Sherlis, D.S. Scott. Mathematics of Programming; C.A.R. Hoare. On Formalism in Specifications; B. Meyer. Formalization in Program Development; P. Naur. Part III: Challenges, Limits, and Alternatives. Formalism and Prototyping in the Software Process; B.I. Blum. Outline of a Paradigm Change in Software Engineering; C. Floyd. The Place of Strictly Defined Notation in Human Insight; P. Naur. Limits of Correctness in Computers; B.C. Smith. Part IV: Focus on Formal Verification. Social Processes and Proofs of Theorems and Programs; R.A. Demillok, R.J. Lipton, A.J. Perlis. Program Verification: The Very Idea; J.H. Fetzer. The Notion of Proof in Hardware Verification; A. Cohn. Program Verification, Deafeasible Reasoning, and Two Views of Computer Science; T.R. Colburn. Epilogue. Philosophical Aspects of Program Verification; J.H. Fetzer. Selected Bibliography. Index of Names. Index of Subjects.