- 214 Downloads
The phenomenon of digital computation is explained (often differently) in computer science, computer engineering and more broadly in cognitive science. Although the semantics and implications of malfunctions have received attention in the philosophy of biology and philosophy of technology, errors in computational systems remain of interest only to computer science. Miscomputation has not gotten the philosophical attention it deserves. Our paper fills this gap by offering a taxonomy of miscomputations. This taxonomy is underpinned by a conceptual analysis of the design and implementation of conventional computational systems at various levels of abstraction. It shows that ‘malfunction’ as it is typically used in the philosophy of artefacts only represents one type of miscomputation.
KeywordsComputer science Specification Program Errors Malfunction Design Implementation Physical computation
We thank Marty Wolf for a useful discussion on miscomputation in physical systems. We also thank the two referees for their constructive comments and suggestions that have improved the paper. This research was conducted while Giuseppe Primiero was a Post-Doctoral Fellow of the Research Foundation Flanders (FWO) at the Centre for Logic and Philosophy of Science, Ghent University, Belgium. He gratefully acknowledges the financial support.
- Black, P. E., Hall, K. M., Jones, M. D., Larson, T. N., & Windley, P. J. (1996). A brief introduction to formal methods (pp. 377–380). IEEE. doi: 10.1109/CICC.1996.510579.
- Campione, M., Walrath, K., & Huml, A. (2001). The Java tutorial: short course on the basics. Boston: Addison-Wesley.Google Scholar
- Curry, Haskell B., Feys, R., & Craig, W. (1958). Combinatory logic. Vol. 1. Amsterdam: North-Holland.Google Scholar
- Dale, N. B., & Weems, C. (2005). Programming and problem solving with C++. Boston: Jones and Bartlett Publishers.Google Scholar
- Davie, A. J. T. (1992). An introduction to functional programming systems using Haskell. Cambridge: Cambridge University Press.Google Scholar
- Dooley, J. (2011). Software development and professional practice. New York: Apress. doi: 10.1007/978-1-4302-3802-7.
- Feldman, M. B., & Koffman, E. B. (1999). Ada 95: problem solving and program design. Reading: Addison-Wesley.Google Scholar
- Fresco, N. (2012). Concrete digital computation: competing accounts and its role in cognitive science. University of New South Wales, Sydney, Australia. Retrieved from http://handle.unsw.edu.au/1959.4/52578.
- Hempel, C. G. (1965). Aspects of scientific explanation: and other essays in the philosophy of science. New York: Free Press.Google Scholar
- Hopcroft, J. E., Motwani, R., & Ullman, J. D. (2001). Introduction to automata theory, languages, and computation. Boston: Addison-Wesley.Google Scholar
- Howard, W. A. (1980). The formulae-as-types notion of construction. In J. P. Seldin & J. R. Hindley (Eds.), (pp (pp. 479–490). London: Academic.Google Scholar
- IEEE Computer Society. (2005). IEEE Standard for Property Specification Language (PSL). IEEE Std 1850-2005, 0_1–143. doi: 10.1109/IEEESTD.2005.97780.
- IEEE Computer Society. (2009). IEEE Standard for Information Technology—Systems Design—Software Design Descriptions—Redline.Google Scholar
- IEEE Computer Society. (1998). IEEE recommended practice for software requirements specifications. New York: Institute of Electrical and Electronics Engineers.Google Scholar
- Intel. (2004). FDIV replacement program: statistical analysis of floating point flaw. Available from http://www.intel.com/support/processors/pentium/sb/CS-013005.htm. Accessed 28 January 2012.
- Kitcher, P. (1989). Explanatory unification and the causal structure of the world. In P. Kitcher & W. C. Salmon (Eds.), Scientific explanation (pp. 410–505). Minneapolis: University of Minnesota Press.Google Scholar
- Lam, W. K. C. (2005). Hardware design verification: simulation and formal method-based approaches. Upper Saddle River: Prentice-Hall.Google Scholar
- May, M., Alles, M., & Wehn, N. (2008). A case study in reliability-aware design: a resilient LDPC code decoder (pp. 456–461). IEEE. doi: 10.1109/DATE.2008.4484723.
- MSDN. (2012). Hardware Errors and Error Sources. Microsoft. Available from http://msdn.microsoft.com/en-us/library/windows/hardware/ff559382%28v=vs.85%29.aspx.
- Palnitkar, S. (2003). Verilog HDL: a guide to digital design and synthesis. Upper Saddle River: SunSoft Press.Google Scholar
- Perlman, M. (2010). Traits have evolved to function the way they do because of a past advantage. In F. J. Ayala & R. Arp (Eds.), Contemporary debates in philosophy of biology (pp. 53–72). Malden: Wiley-Blackwell.Google Scholar
- Primiero, G. (2013). A Taxonomy of Errors for Information Systems. Minds and Machines. doi: 10.1007/s11023-013-9307-5.
- Purdum, J. J. (2012). Beginning object oriented programming with C#. Hoboken: Wiley.Google Scholar
- Shelly, G. B., Cashman, T. J., Starks, J., & Mick, M. L. (2006). Java programming: comprehensive concepts and techniques. Boston: Thomson/Course Technology.Google Scholar
- Smith, B. C. (1996). Limits of correctness in computers. In R. Kling (Ed.), Computerization and controversy: value conflicts and social choices. San Diego: Academic.Google Scholar
- Sørensen, M. H., & Urzyczyn, P. (2006). Lectures on the Curry–Howard isomorphism. Amsterdam]: Elsevier.Google Scholar
- Strevens, M. (2008). Depth: an account of scientific explanation. Cambridge: Harvard University Press.Google Scholar
- Turner, R., & Eden, A. (2011). The Philosophy of Computer Science. In E. N. Zalta (Ed.), The Stanford Encyclopedia of Philosophy (Winter 2011.). Available from http://plato.stanford.edu/archives/win2011/entries/computer-science/.
- Williams, T. J., Schaffer, E. J., & Rohr, A. (2003). Redundant and voting systems. In Instrument engineers’ handbook. Boca Raton: CRC Press.Google Scholar
- Woodward, J. (2005). Making things happen: a theory of causal explanation. New York: Oxford University Press.Google Scholar