Skip to main content
Log in

Philosophical aspects of program verification

  • General Article
  • Published:
Minds and Machines Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Barwise, J. (1989), ‘Mathematical Proofs of Computer System Correctness’, Notices of the AMS 36, pp. 844–851.

    Google Scholar 

  • Berg, H. K. et al. (1982), Formal Methods of Program Verification and Specification, Englewood Cliffs, NJ: Prentice-Hall.

    Google Scholar 

  • 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.

    Google Scholar 

  • DeMillo, R., R. Lipton, and A. Perlis (1979), ‘Social Processes and Proofs of Theorems and Programs’, Communications of the ACM 22, pp. 271–280.

    Google Scholar 

  • Dijkstra, E. W. (1972), ‘Notes on Structured Programming’, in O. Dahl et al., eds., Structured Programming, New York, NY: Academic Press.

    Google Scholar 

  • Dijkstra, E. W. (1989), ‘On the Cruelty of Really Teaching Computing Science’, Communications of the ACM 32, pp. 1398–1404.

    Google Scholar 

  • Dobson, J. and B. Randell (1989), ‘Viewpont’, Communications of the ACM 32, pp. 420–422.

    Google Scholar 

  • Fetzer, J. H. (1981), Scientific Knowledge, Dordrecht, The Netherlands: D. Reidel.

    Google Scholar 

  • Fetzer, J. H. (1988), ‘Program Verification: The Very Idea’, Communications of the ACM 31, pp. 1048–1063.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Goodenough, J. and S. Gerhart (1975), ‘Toward a Theory of Test Data Selection’, IEEE Transactions on Software Engineering 1, pp. 156–173.

    Google Scholar 

  • Gries, D., ed. (1979), Programming Methodology, New York, NY: Springer-Verlag.

    Google Scholar 

  • Hoare, C. A. R. (1969), ‘An Axiomatic Basis for Computer Programming’, Communications of the ACM 12, pp. 576–580, 584.

    Google Scholar 

  • 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.

    Google Scholar 

  • Marcotty, M. and H. Ledgard (1989), Programming Language Landscape: Syntax/Semantics/Implementations, 2nd ed., Chicago, IL: Science Research Associates.

    Google Scholar 

  • 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.

    Google Scholar 

  • Myers, G. J. (1979), The Art of Software Testing, New York, NY: John Wiley & Sons.

    Google Scholar 

  • Newell, A. and H. Simon (1976), ‘Computer Science as Empirical Inquiry: Symbols and Search’, Communications of the ACM 19, pp. 113–126.

    Google Scholar 

  • Parnas, D. (1989), ‘Colleagues Respond to Dijkstra's Comments’, Communications of the ACM 32, pp. 1405–1406.

    Google Scholar 

  • 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.

    Google Scholar 

  • Smith, B. C. (1985), ‘The Limits of Correctness’, Computers and Society 14/4 (Winter), pp. 18–28.

    Google Scholar 

  • Tompkins, H. (1989), ‘Verifying Feature-Bugs’, Communications of the ACM 32, pp. 1130–1131.

    Google Scholar 

  • 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00361037

Key words

Navigation