Program Verification and Functioning of Operative Computing Revisited: How about Mathematics Engineering?
- First Online:
- 101 Downloads
The issue of proper functioning of operative computing and the utility of program verification, both in general and of specific methods, has been discussed a lot. In many of those discussions, attempts have been made to take mathematics as a model of knowledge and certitude achieving, and accordingly infer about the suitable ways to handle computing. I shortly review three approaches to the subject, and then take a stance by considering social factors which affect the epistemic status of both mathematics and computing. I use the analogy between mathematics and computing in reverse—that is to say, I consider operative computing as a form of making mathematics, and so attempt to learn from computing to mathematics in general. I conclude that “mathematics engineering” is a field to be both developed for practical improvement of doing mathematics and taken into consideration while philosophizing about mathematics as well.
KeywordsComputing engineering Operative computing Philosophy of mathematics Program verification Software engineering
- Auslander, J. (2008). On the roles of proof in mathematics. In B. Gold & R. A. Simons (Eds.), Proof and other dilemmas: Mathematics and philosophy (pp. 61–77). Washington: Mathematical Association of America.Google Scholar
- Bjørner, D. (2006). Software engineering 1: Abstraction and modelling. An EATCS Series. Berlin: Springer.Google Scholar
- Bloor, D. (1994). What can the sociologist of knowledge say about 2 + 2=4? In P. Ernest (Ed.), Mathematics, education and philosophy: An international perspective (pp. 15–26). London: Falmer Press.Google Scholar
- Collins, H. (1990). Artificial experts: Social knowledge and intelligent machines. Cambridge: Cambridge University Press.Google Scholar
- Crowe, M. J. (1988). Ten misconceptions about mathematics and its history. In W. Aspray & P. Kitcher (Eds.), History and philosophy of modern mathematics (pp. 260–277). Minneapolis: University of Minnesota Press.Google Scholar
- Ernest, P. (1991). The philosophy of mathematics education. London: Falmer Press.Google Scholar
- Harel, D. (with Feldman Y.) (2004). Algorithmics: The spirit of computing, 3rd ed. Reading: Addison-Wesley.Google Scholar
- Hersh, R. (1997). What is mathematics, really? Oxford: Oxford University Press.Google Scholar
- Hoare, C. A. R. (1969). An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580, 583.Google Scholar
- Hoare, C. A. R. (1986). Mathematics of Programming. BYTE (August). Reprinted in Colburn, T. R., Fetzer, J. H., & Rankin, T. L. (Eds.) (1993) (pp. 135–154).Google Scholar
- Kitcher, P. (1984). The nature of mathematical knowledge. Oxford: Oxford University Press.Google Scholar
- Liskov, B., & Zilles, S. (1977). An introduction to formal specifications of data abstractions. In R. T. Yeh (Ed.), Current trends in programming methodology (pp. 1–32). Englewood Cliffs: Prentice Hall.Google Scholar
- Mancosu, P. (2000). On mathematical explanation. In E. Grosholtz & H. Berger (Eds.), Growth of mathematical knowledge (pp. 103–120). Dordrecht: Kluwer Academic Publishers.Google Scholar
- Maurer, W. D. (1979). Letter to the editor. Communications of the ACM, 22, 625–629.Google Scholar
- Pelaez, E. (1988). A Gift from Pandora’s Box: The Software Crisis. Ph.D. dissertation. Edinburgh: University of Edinburgh.Google Scholar
- Putnam, H. (2002). The collapse of the fact/value dichotomy. Cambridge: Cambridge University Press.Google Scholar
- Rapaport, W. J. (2007). Can Programs Be Verified? http://www.cse.buffalo.edu/~rapaport/510/canprogsbeverified.html.
- Sasaki, C. (2005). What are revolutions in mathematics? And how do they differ from those in the natural sciences? Lecture given in Peking University. http://www.phil.pku.edu.cn/documents/Revolutions_in_Math.1.rtf.
- Schach, S. R. (2007). Algorithmics: Object-oriented and classical software engineering (7th ed.). New York: McGraw-Hill.Google Scholar
- Scherlis, W. L., & Scott, D. S. (1983). First steps towards inferential programming. In R. E. A. Mason (Ed.), Information processing 83 (pp. 199–212). Amsterdam: Elsevier Science Publishers.Google Scholar
- Simons, C. L., Parmee, I. C., & Coward, P. D. (2003). 35 years on: To What extent has software engineering design achieved its goals? IEE Proceedings–Software, 19(5), 337–350.Google Scholar
- Smith, B. C. (1985). Limits of correctness in computers. As center for the study of language and information report No. CSLI-85–36. Stanford: Ventura Hall.Google Scholar
- TRD, (2009). The risks digest—Forum on risks to the public in computers and related systems, regularly updated. http://catless.ncl.ac.uk/risks.
- Zemanek, H. (1979). Abstract architecture. In D. Bjørner (Ed.), Abstract software specifications (pp. 1–42). Copenhagen: Springer.Google Scholar