Ebook: Program Verification: Fundamental Issues in Computer Science
- Tags: Artificial Intelligence (incl. Robotics), Optimization, Philosophy of Science, Interdisciplinary Studies, Software Engineering/Programming and Operating Systems
- Series: Studies in Cognitive Systems 14
- Year: 1993
- Publisher: Springer Netherlands
- Edition: 1
- Language: English
- pdf
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.
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.
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:
Front Matter....Pages i-xiii
Front Matter....Pages 1-1
Computer Science and Philosophy....Pages 3-31
Front Matter....Pages 33-33
Towards a Mathematical Science of Computation....Pages 35-56
Proof of Algorithms by General Snapshots....Pages 57-64
Assigning Meanings to Programs....Pages 65-81
An Axiomatic Basis for Computer Programming....Pages 83-96
Front Matter....Pages 97-97
First Steps Towards Inferential Programming....Pages 99-133
Mathematics of Programming....Pages 135-154
On Formalism in Specifications....Pages 155-189
Formalization in Program Development....Pages 191-210
Front Matter....Pages 211-211
Formalism and Prototyping in the Software Process....Pages 213-238
Outline of a Paradigm Change in Software Engineering....Pages 239-259
The Place of Strictly Defined Notation in Human Insight....Pages 261-274
Limits of Correctness in Computers....Pages 275-293
Front Matter....Pages 295-295
Social Processes and Proofs of Theorems and Programs....Pages 297-319
Program Verification: The Very Idea....Pages 321-358
The Notion of Proof in Hardware Verification....Pages 359-374
Program Verification, Defeasible Reasoning, and Two Views of Computer Science....Pages 375-399
Front Matter....Pages 401-401
Philosophical Aspects of Program Verification....Pages 403-427
Back Matter....Pages 429-458
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:
Front Matter....Pages i-xiii
Front Matter....Pages 1-1
Computer Science and Philosophy....Pages 3-31
Front Matter....Pages 33-33
Towards a Mathematical Science of Computation....Pages 35-56
Proof of Algorithms by General Snapshots....Pages 57-64
Assigning Meanings to Programs....Pages 65-81
An Axiomatic Basis for Computer Programming....Pages 83-96
Front Matter....Pages 97-97
First Steps Towards Inferential Programming....Pages 99-133
Mathematics of Programming....Pages 135-154
On Formalism in Specifications....Pages 155-189
Formalization in Program Development....Pages 191-210
Front Matter....Pages 211-211
Formalism and Prototyping in the Software Process....Pages 213-238
Outline of a Paradigm Change in Software Engineering....Pages 239-259
The Place of Strictly Defined Notation in Human Insight....Pages 261-274
Limits of Correctness in Computers....Pages 275-293
Front Matter....Pages 295-295
Social Processes and Proofs of Theorems and Programs....Pages 297-319
Program Verification: The Very Idea....Pages 321-358
The Notion of Proof in Hardware Verification....Pages 359-374
Program Verification, Defeasible Reasoning, and Two Views of Computer Science....Pages 375-399
Front Matter....Pages 401-401
Philosophical Aspects of Program Verification....Pages 403-427
Back Matter....Pages 429-458
....