Skip to main content
Log in

On the Experimental Foundation of Computing

  • Published:
Axiomathes Aims and scope Submit manuscript

Abstract

This paper offers a review of Giuseppe Primero’s (2020) book “On the foundations of computing”. Mathematical, engineering, and experimental foundations of the science of computing are examined under the light of the notions of formal, physical, and experimental computational validity provided by the author. It is challenged the thesis that experimental computational validity can be defined only for the algorithmic method and not for the software development process. The notions of computational hypothesis and computational experiment provided by Primiero (2020) are extended to the case of software development. Finally, it is highlighted how the hypothetical-deductive method is involved in the practice of using models to corroborate computational hypotheses in software testing. As a concluding remark, it is underlined how defining experimental computational validity in the context of software development offers a sound experimental foundation to the science of computing.

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.

Notes

  1. See Mosses (2006) for an introduction on denotational semantics.

  2. Gordon Moore in 1965 realised that the cost of circuit components decreases as the number of components per circuit increases and predicted that the number of transistors in a chip would have doubled every two years (Moore et al. 1965).

  3. Current software can reach hundreds of millions of code lines or even more, as it is the case for the Google web services with its 2 billion lines.

  4. Some of these relations, namely verification and validation, are considered in Sect. 6 below.

  5. That high-level language programs can be understood as computational artefacts is a well-accepted statement since (Turner 2014).

  6. Whereas a specification, often called property specification, requires a definite behavioural property to be satisfied by a program, a system specification expresses all the behaviours that the program is expected to implement.

  7. Notice that no mathematical model is here referred to and so this relation only involves the computational one.

References

  • Ammann P, Offutt J (2016) Introduction to software testing. Cambridge University Press, Cambridge

    Book  Google Scholar 

  • Angius N (2013) Abstraction and idealization in the formal verification of software systems. Mind Mach 23(2):211–226

    Article  Google Scholar 

  • Angius N (2014) The problem of justification of empirical hypotheses in software testing. Philos Technol 27(3):423–439

    Article  Google Scholar 

  • Angius N, Primiero G, Turner R (2021) The philosophy of computer science. In: Edward N. Zalta (ed) The stanford encyclopedia of philosophy (Spring 2021 Edition). URL = <https://plato.stanford.edu/archives/spr2021/entries/computer-science/>

  • Baier C, Katoen J-P (2008) Principles of model checking. MIT press, Cambridge

    Google Scholar 

  • Brooks FP Jr (1996) The computer scientist as toolsmith ii. Commun ACM 39(3):61–68

    Article  Google Scholar 

  • Callahan J, Schneider F, Easterbrook S (1996) Automated software testing using model-checking. In: Proceedings 1996 SPIN workshop. vol 353

  • Cantwell Smith B (1996) The limits of correctness. In: Kling R (ed) Computerization and Controversy, ACM SIGCAS Computers and Society, 2nd edn, Morgan Kaufmann, Academic Press, San Diego, pp 18–26.

  • Clarke EM, Grumberg O, Peled D (1999) Model checking. MIT press, Cambridge

    Google Scholar 

  • Colburn TR (1999) Software, abstraction, and ontology. Monist 82(1):3–19

    Article  Google Scholar 

  • Colburn T (2000) Philosophy and computer science. M. E. Sharpe

  • Curry HB (1934) Functionality in combinatory logic. Proc Natl Acad Sci USA 20(11):584

    Article  Google Scholar 

  • de Bruijn NG (1970) A survey of the project automath. Symp Autom Demonstr Lect Notes Math 125:29–61

    Google Scholar 

  • De Millo RA, Lipton RJ, Perlis AJ (1979) Social processes and proofs of theorems and programs. Commun ACM 22(5):271–280

    Article  Google Scholar 

  • Denning PJ (2005) Is computer science science? Commun ACM 48(4):27–31

    Article  Google Scholar 

  • Dijkstra EW et al. (1970) Notes on structured programming

  • Duncan WD (2017) Ontological distinctions between hardware and software. Appl Ontol 12(1):5–32

    Article  Google Scholar 

  • Eden AH (2007) Three paradigms of computer science. Mind Mach 17(2):135–167

    Article  Google Scholar 

  • Fetzer JH (1988) Program verification: the very idea. Commun ACM 31(9):1048–1063

    Article  Google Scholar 

  • Floridi L (2008) The method of levels of abstraction. Mind Mach 18(3):303–329

    Article  Google Scholar 

  • Floyd R (1967) Assigning meanings to programs. Proc. Symp Appl Math Math Asp Comput Sci 19:19–32

    Article  Google Scholar 

  • Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10):576–580

    Article  Google Scholar 

  • Hughes RI (1999) The Ising model, computer simulation, and universal physics. Ideas Context 52:97–145

    Google Scholar 

  • Humphreys P (1994) Numerical experimentation. Patrick Suppes: Scientific Philosopher, pp 103–121.

  • Irmak N (2012) Software is an abstract artifact. Grazer Philosophis Stud 86(1):55–72

    Article  Google Scholar 

  • Moor JH (1978) Three myths of computer science. Br J Philos Sci 29(3):213–222

    Article  Google Scholar 

  • Mosses PD (2006) Formal semantics of programming languages: an overview. Electron Notes Theor Comput Sci 148(1):41–73

    Article  Google Scholar 

  • Naur P, Randell B (1969) Software engineering: report of a conference sponsored by the nato science committee, Garmisch, Germany, 7th to 11th October, 1968. Scientific A airs Division, NATO

  • Newell A, Perlis AJ, Simon HA (1967) Computer science. Science 157(3795):1373–1374

    Article  Google Scholar 

  • O’Hearn PW, Pym DJ (1999) The logic of bunched implications. Bull Symb Log 5(2):215–244

    Article  Google Scholar 

  • Parker WS (2009) Does matter really matter? computer simulations, experiments, and materiality. Synthese 169(3):483–496

    Article  Google Scholar 

  • Primiero G (2016) Information in the philosophy of computer science. In: Floridi L (ed) The Routledge handbook of philosophy of information. Routledge, London, pp 90–106

    Google Scholar 

  • Primiero G (2020) On the foundations of computing. Oxford University Press, USA

    Google Scholar 

  • Rapaport WJ (2020) Philosophy of computer science. Current draft in progress at https://cse.buffalo.edu/~rapaport/Papers/phics.pdf

  • Reynolds JC (2002) Separation logic: a logic for shared mutable data structures. In: Proceedings 17th annual IEEE symposium on logic in computer science, IEEE, pp 55–74

  • Scott D, Strachey C (1971) Toward a mathematical semantics for computer languages, vol 1. Oxford University Computing Laboratory, Programming Research Group Oxford

  • Simon HA (2019) The sciences of the artificial, 3rd edn. MIT press, Cambridge

    Book  Google Scholar 

  • Suber P (1988) What is software? J Specul Philos 89–119.

  • Tedre M (2014) The science of computing: shaping a discipline. CRC Press, Boca Raton

    Book  Google Scholar 

  • Turner R (2014) Programming languages as technical artifacts. Philos Technol 27(3):377–397

    Article  Google Scholar 

  • Turner R (2018) Computational artifacts. Springer

    Book  Google Scholar 

  • Wang C, Hachtel GD, Somenzi F (2006) Abstraction refinement for large scale model checking. Springer, Berlin

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nicola Angius.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Angius, N. On the Experimental Foundation of Computing. Axiomathes 32 (Suppl 3), 1221–1236 (2022). https://doi.org/10.1007/s10516-022-09645-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10516-022-09645-z

Keywords

Navigation