Abstract
A debate over the theoretical capabilities of formal methods in computer science has raged for more than two years now. The function of this paper is to summarize the key elements of this debate and to respond to important criticisms others have advanced by placing these issues within a broader context of philosophical considerations about the nature of hardware and of software and about the kinds of knowledge that we have the capacity to acquire concerning their performance.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Barwise, J. (1989), ‘Mathematical Proofs of Computer System Correctness’, Notices of the AMS 36, pp. 844–851.
Berg, H. K. et al. (1982), Formal Methods of Program Verification and Specification, Englewood Cliffs, NJ: Prentice-Hall.
Blum, B. (1989), ‘Formalism and Prototyping in the Software Process’, RMI-89-011, Applied Physics Laboratory, Johns Hopkins University.
Cohn, A. (1989), ‘The Notion of Proof in Hardware Verification’, Journal of Automated Reasoning 5, pp. 127–139.
DeMillo, R., R. Lipton, and A. Perlis (1979), ‘Social Processes and Proofs of Theorems and Programs’, Communications of the ACM 22, pp. 271–280.
Dijkstra, E. W. (1972), ‘Notes on Structured Programming’, in O. Dahl et al., eds., Structured Programming, New York, NY: Academic Press.
Dijkstra, E. W. (1989), ‘On the Cruelty of Really Teaching Computing Science’, Communications of the ACM 32, pp. 1398–1404.
Dobson, J. and B. Randell (1989), ‘Viewpont’, Communications of the ACM 32, pp. 420–422.
Fetzer, J. H. (1981), Scientific Knowledge, Dordrecht, The Netherlands: D. Reidel.
Fetzer, J. H. (1988), ‘Program Verification: The Very Idea’, Communications of the ACM 31, pp. 1048–1063.
Fetzer, J. H. and C. R. Martin (1990), ‘“The Very Idea”, Indeed!’, Technical Report, Department of Computer Science, Duke University.
Fodor, J. (1978), ‘Tom Swift and His Procedural Grandmother’, Cognition 6, pp. 229–247.
Garland, D. (1990), ‘Technical Correspondence Letter’, Communications of the ACM, forthcoming.
Gerhard, S. and L. Yelowitz (1976), ‘Observations of Fallibility in Applications of Modern Programming Methodologies’, IEEE Transactions on Software Engineering 2, pp. 195–207.
Goodenough, J. and S. Gerhart (1975), ‘Toward a Theory of Test Data Selection’, IEEE Transactions on Software Engineering 1, pp. 156–173.
Gries, D., ed. (1979), Programming Methodology, New York, NY: Springer-Verlag.
Hoare, C. A. R. (1969), ‘An Axiomatic Basis for Computer Programming’, Communications of the ACM 12, pp. 576–580, 584.
Hoare, C. A. R. (1986), ‘Mathematics of Programming’, BYTE (August), pp. 115–149.
Linger, R. C., H. Mills, and B. Witt (1979), Structured Programming: Theory and Practice, Reading, MA: Addison-Wesley.
Marcotty, M. and H. Ledgard (1989), Programming Language Landscape: Syntax/Semantics/Implementations, 2nd ed., Chicago, IL: Science Research Associates.
Markoff, J. (1989), ‘Top-of-Line Intel Chip Is Flawed’, The New York Times (Friday, October 27), pp. 25 and 39.
Moore, J Strother (1989), ‘System Verification’, Journal of Automated Reasoning 5, pp. 409–410.
Myers, G. J. (1979), The Art of Software Testing, New York, NY: John Wiley & Sons.
Newell, A. and H. Simon (1976), ‘Computer Science as Empirical Inquiry: Symbols and Search’, Communications of the ACM 19, pp. 113–126.
Parnas, D. (1989), ‘Colleagues Respond to Dijkstra's Comments’, Communications of the ACM 32, pp. 1405–1406.
Render, H. (1990a), Article 755 (comp.software.eng), USENET, 17 January 1990, 20:01:00 GMT.
Render, H. (1990b), Article 1413 (comp.software.eng), USENET, 1 February 1990, 01:31:30 GMT.
Richards, H. (1990), ‘Foreword’, in E.W. Dijkstra, ed., Formal Development of Programs and Proofs, Reading, MA: Addison-Wesley, pp. vii-ix.
Smith, B. C. (1985), ‘The Limits of Correctness’, Computers and Society 14/4 (Winter), pp. 18–28.
Tompkins, H. (1989), ‘Verifying Feature-Bugs’, Communications of the ACM 32, pp. 1130–1131.
Wulf, W. A. (1979), ‘Introduction to Part I: Comments on “Current Practice”’, in P. Wegner, ed., Research Directions in Software Technology, Cambridge, MA: MIT Press, pp. 39–43.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Fetzer, J.H. Philosophical aspects of program verification. Minds and Machines 1, 197–216 (1991). https://doi.org/10.1007/BF00361037
Issue Date:
DOI: https://doi.org/10.1007/BF00361037