ebook img

Program Verification: Fundamental Issues in Computer Science PDF

453 Pages·1993·8.375 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Program Verification: Fundamental Issues in Computer Science

PROGRAM VERIFICATION STUDIES IN COGNITIVE SYSTEMS VOLUME 14 EDITOR James H. Fetzer, University of Minnesota, Duluth ADVISORY EDITORIAL BOARD Fred Dretske, Stanford University Ellery Eells, University of Wisconsin, Madison Alick Elithorn, Royal Free Hospital, London Jerry Fodor, Rutgers University Alvin Goldman, University ofA rizona Jaakko Hintikka, Boston University Frank Keil, Cornell University William Rapaport, State University ofN ew York at Buffalo Barry Richards, Imperial College, London Stephen Stich, Rutgers University Lucia Vaina, Boston University Terry Winograd, Stanford University The titles published in this series are listed at the end of this volume. PROGRAM VERIFICATION Fundamental Issues in Computer Science Edited by TIMOTHY R. COLBURN Department of Computer Science, University of Minnesota, Duluth JAMES H. FETZER Department of Philosophy, University of Minnesota, Duluth and TERR Y L. RANKIN IBM Health Industry Marketing, Atlanta, Georgia SPRINGER -SCIENCE+BUSINESS MEDIA, B. V. Library of Congress Cataloging-in-Publication Data Program verlficatlon fundamental issues in computer science I edited by Timothy R. Colburn, James H. Fetzer, and Terry L. Rankin. p. cm. -- (Studies ln cognltive systems ; v. 14) Inc 1u des b i b 1 i ograph i ca 1 references (p. ) and i ndexes. ISBN 978-94-010-4789-0 ISBN 978-94-011-1793-7 (eBook) DOI 10.1007/978-94-011-1793-7 1. Computer software--Verificatlon. 1. Colburn, Timothy R., 1952- II. Fetzer, James H., 1940- III. Rankin, Terry L. IV. Serles. QA76.76.V47P76 1993 005.1 '4--dc20 92-26748 ISBN 978-94-010-4789-0 Printed an acid-free paper AII Rights Reserved © 1993 Springer Science+Business Media Dordrecht Originally published by Kluwer Academic Publishers in 1993 Softcover reprint ofthe hardcover lst edition 1993 and copyrightholders as specified on appropriate pages within. No part ofthe material protected by this copyright notice may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage and retrieval system, without written permis sion from the copyright owner. To C. A. R. Hoare TABLE OF CONTENTS SERIES PREFACE ix ACKNOWLEDGMENTS xi PROLOGUE TIMOTHY R. COLBURN / Computer Science and Philosophy 3 PART II THE MATHEMATICAL PARADIGM JOHN McCARTHY / Towards a Mathematical Science of Computation 35 PETER NAUR / Proof of Algorithms by General Snapshots 57 ROBERT W. FLOYD / Assigning Meanings to Programs 65 C. A. R. HOARE / An Axiomatic Basis for Computer Pro- gramming 83 PART II / ELABORATING THE PARADIGM WILLIAM L. SCHERLIS and DANA S. SCOTT / First Steps Towards Inferential Programming 99 C. A. R. HOARE / Mathematics of Programming 135 BERTRAND MEYER / On Formalism in Specifications 155 PE TER N A UR / Formalization in Program Development 191 PART III / CHALLENGES, LIMITS, AND ALTERNATIVES BRUCE 1. BLUM / Formalism and Prototyping in the Software Process 213 viii TABLE OF CONTENTS CHRISTIANE FLOYD I Outline of a Paradigm Change in Software Engineering 239 PETER NAUR I The Place of Strictly Defined Notation in Human Insight 261 BRIAN CANTWELL SMITH I Limits of Correctness in Com- puters 275 PART IV I FOCUS ON FORMAL VERIFICATION R. A. DE MILLO, R. J. LIPTON, and A. J. PERLIS I Social Processes and Proofs of Theorems and Programs 297 JAMES H. FETZER I Program Verification: The Very Idea 321 AVRA COHN I The Notion of Proof in Hardware Verification 359 TIMOTHY R. COLBURN I Program Verification, Defeasible Reasoning, and Two Views of Computer Science 375 EPILOGUE JAMES H. FETZER I Philosophical Aspects of Program Verification 403 SELECTED BIBLIOGRAPHY 429 INDEX OF NAMES 445 INDEX OF SUBJECTS 451 SERIES PREFACE This series includes monographs and collections of studies devoted to the investigation and exploration of knowledge, information, and data processing systems of all kinds, no matter whether human, (other) animal, or machine. Its scope spans the full range of interests from clas sical problems in the philosophy of mind and philosophical psychology through issues in cognitive psychology and sociobiology (concerning the mental powers of other species) to ideas related to artificial intelli gence and computer science. While primary emphasis is placed upon theoretical, conceptual, and epistemological aspects of these problems and domains, empirical, experimental, and methodological studies will also appear from time to time. The program verification debate affords a welcome opportunity to contribute to a new area of study, which might appropriately be referred to as the philosophy of computer science. The foundations of a field as technical and as recent as computer science raise special problems that tend to resist analysis by conventional means. The editors of this volume have sought to contribute to our understanding of this discipline by bringing together important papers that clarify and illuminate these underlying issues. The senior editor, Timothy R. Colburn, supplies a framework for following the issues, while the bibliography provides a route to other work that is suitably related to these questions. An assortment of rich and fascinating problems are involved here, which deserve to be explored further. 1. H. F. ix ACKNOWLEDGMENTS 'Towards a Mathematical Science of Computation', by John McCarthy originally appeared in C. M. Popplewell (ed.), Information Processing 1962, Proceedings of DFIP Congress 62 (Amsterdam, The Netherlands: North-Holland Publishing Company, 1963), pp. 21-28. 'Proof of Algorithms by General Snapshots', © 1966 Peter Naur, originally appeared in BIT 6 (1966), pp. 310-316. 'Assigning Meanings to Programs', by Robert W. Floyd, originally appeared in Mathematical Aspects of Computer Science (Proceedings of Symposia in Applied Mathematics, Vol. 19), American Mathematical Society, 1967, pp. 19-32. 'An Axiomatic Basis for Computer Programming', by C. A. R. Hoare, originally appeared in Communications of the ACM 12(10) (1969), pp. 576-580 and p. 583. © 1969 Association for Computing Machinery, Inc. Reprinted by permission. 'Mathematics of Programming', by C. A. R. Hoare is reprinted with permission, from the August 1986 issue of BYTE Magazine. © McGraw-Hill, Inc., New York, NY. All rights reserved. 'On Formalism in Specifications', by Bertrand Meyer, originally ap peared in IEEE Software. © 1985 IEEE. Reprinted with permission, from IEEE Software; volume 2; issue 1; pp. 6-26; January 1985. 'Formalization in Program Development', © 1982 Peter Naur, origi nally appeared in BIT 22 (1982), pp. 437-453. 'First Steps Towards Inferential Programming', by William L. Scherlis and Dana S. Scott, originally appeared in R. E. A. Mason (ed.), Infor mation Processing 83. © 1983 JFIP and Elsevier Science Publishers, The Netherlands, pp. 199-212. xi xii ACKNOWLEDGMENTS 'Outline of a Paradigm Change in Software Engineering', by Christiane Floyd, originally appeared in G. Bjerknes et al. (eds.), Computers and Democracy: A Scandanavian Challenge (Brookfield, VT: Gower Pub lishing Company, 1987), pp. 191-210. (Old Post Road, Brookfield, VT 05036, U.SA.) 'Limits of Correctness in Computers', by Brian Cantwell Smith, origi nally appeared as a Center for the Study of Language and Information Report, No. CSLI-85-36 (October 1985), © The Center for the Study of Language and Information, Stanford, CA, 1985. 'Formalism and Prototyping in the Software Process', by Bruce I. Blum, originally appeared in Information and Decision Technologies 15 (1989), pp. 327-341. © Elsevier Science Publishers, The Netherlands. 'The Place of Strictly Defined Notation in Human Insight', by Peter Naur, originally appeared in Computing: A Human Activity, © 1992 by ACM Press, forthcoming. Reprinted with permission of Addison Wesley Publishing Company, Inc. 'Social Processes and Proofs of Theorems and Programs', by Richard A. De Millo, Richard J. Lipton, and Alan J. Perlis, originally appeared in Communications of the ACM 22(5) (1979), 271-280. © 1979, Association for Computing Machinery, Inc. Reprinted by permission. 'Program Verification: The Very Idea', by James H. Fetzer, originally appeared in Communications of the ACM 31(9) (1988), 1048-1063. © 1988, Association for Computing Machinery, Inc. Reprinted by permission. 'The Notion of Proof in Hardware Verification', by Avra Cohn, origi nally appeared in Journal of Automated Reasoning 5 (1989), 127- 139. Reprinted by permission of Kluwer Academic Publishers. 'Program Verification, Defeasible Reasoning, and Two Views of Com puter Science', by Timothy R. Colburn, originally appeared in Minds and Machines 1 (1991), 97-116. Reprinted by permission of Kluwer Academic Publishers.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.