Defects and Faults in Algorithms, Programs and Instruction Sequences
DOI:
https://doi.org/10.36285/tm.49Abstract
A new definition of algorithms is given, where algorithms are understood as cognitive 'entities', the definition of which is done in tandem with so-called algorhymes, which are entities serving as documentation of algorithms. Based on this definition the notions of fault and defect are reconsidered in relation to instruction sequences, programs and algorithms. Programs as well as algorithms are considered capable of containing moral defects, the notion of a moral defect is developed in some detail. The notion of a moral fault is considered implausible.
References
Aein, M.J., Aksoy, E.E., Wörgötter, F..: Library of actions: implementing a generic robot execution framework by using manipulation action semantics. The International Journal of Robotics research, 38(8), pp. 910–934 (2019).
Avižienzis, A. Laprie, J.C., Randell, B.: Fundamental concepts of dependability. In Workshop on Robot Dependability: Technological Challenge of Dependable Robots in Human Environments, Seoul (2001).
Avižienzis, A. Laprie, J.C., Randell, B., Landwehr, C.: Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on dependable and secure computing,1(1), pp.1–23 (2004).
Bergstra, J.A.: Quantitative expressiveness of instruction sequence classes for computation on bit registers. Computer Science Journal of Moldova, 27(2), pp. 131-161 (2019).
Bergstra, J.A.: Promises in the context of humanoid robot morality. International Journal of Robotic Enginering, 5(2), 20 p, (2020).
Bergstra, J.A.: Instruction sequence faults with formal change justification. Scientific Annals of Computer Science, 30(2), pp. 105–166 (2020).
Bergstra, J.A.: Qualifications of instruction sequence failures, faults and defects: dormant, effective, detected, temporary, and permanent. Scientific Annals of Computer Science, 21(1), pp. 1–50 (2021)
Bergstra, J.A., Bethke, I.: Predictable and reliable program code: virtual machine-based projection semantics. In Handbook of Network and System Administration, Elsevier 2001, pp. 653–686 (2007).
Bergstra, J.A., Burgess, M.: A promise theoretic account of the Boeing 737 Max MCAS algorithm affair (2019).
Bergstra, J.A., Burgess, M.: Candidate software process flaws for the Boeing 737 Max MCAS algorithm and a risk for a proposed upgrade (2020).
Bergstra, J.A., Klint, P.: About “trivial” software patents: the IsNot case. Science of Computer Programming, 64, pp. 264–285 (2007).
Bergstra, J.A., Loots, M.E.: Program algebra for sequential code. Journal of Logic and Algebraic Programming, 51(2), pp. 125–156 (2002).
Bergstra, J.A., Middelburg, C.A.: Thread algebra for strategic interleaving. Formal Aspects of Computing,19(4), pp. 445-474, (2007).
Bergstra, J.A., Middelburg, C.A.: Distributed strategic interleaving with load balancing. Future Generation Computer Systems, 24(6), pp. 530–548, (2008).
Bergstra, J.A., Middelburg, C.A.: A thread calculus with molecular dynamics. Information and Computation, 208, pp. 817–844, (2010).
Bergstra, J.A., Middelburg, C.A.: Data linkage dynamics with shedding. Fundamenta Informaticae 103 (1-4), pp. 31-52 (2010).
Bergstra, J.A., Middelburg, C.A.: Thread algebra for poly-threading. Formal Aspects of Computing 23(4), pp. 567–583 (2011).
Bergstra, J.A., Middelburg, C.A.: Instruction sequence processing operators. Acta Informatica 49(3), pp. 139–172 (2012).
Bergstra, J.A., Middelburg, C.A.: Data linkage algebra, data linkage dynamics, and priority rewriting. Fundamenta Informaticae,128(4), pp.367–412, (2013).
Bergstra, J.A., Middelburg, C.A.: Instruction sequence expressions for the secure hash algorithm SHA-256. (2013).
Bergstra, J.A., Middelburg, C.A.: On algorithmic equivalence of instruction sequences for computing bit string functions. Fundamenta Informati-cae138(4), pp. 411–434 (2015).
Bergstra, J.A., Middelburg, C.A.: On instruction sets for Boolean registers in program algebra. Scientific Annals of Computer Science, 26(1), pp. 1–26 (2016).
Bergstra, J.A., Middelburg, C.A.: A short introduction to program algebra with instructions for Boolean registers. Computer Science Journal of Moldova, 26(3), pp. 199–232 (2019).
Bergstra, J.A., Ponse, A.: Combining programs and state machines. Journal of Logic and Algebraic Programming 51(2), pp. 175–192 (2002).
Ciancarini, P., Russo, D., Sillitti, A., Succi, G.: A guided tour of the legal implications of software cloning. ICSE ’16, Austin, TX, USA (2016).
Diallo, N., Ghardallou, W., Mili, A.: Relative correctness: a bridge between testing and proving. CEUR Workshop Proceedings, (2016).
Edmonds, J.: How to think about algorithms. Cambridge University Press, ISBN 978-521-61410-8, (2008).
Glass, R.L.: Persistent software errors. IEEE Transactions on Software Engineering 7(2) pp.162–168 (1981).
Grottke, M., Tivedi, K. S.: A classification of software faults. 16 IEEE Symp. on Software Reliability Engineering, pp 19–20 (2005).
Karshtedt, D., Lemley, M.A., Seymore S.B.: The death of the genus claim. To appear in Harvard Journal of Law and Technology. (2021).
Kroeger, O.: Why are software patents so elusive? Masaryk University Journal of Law and Technology, 5(1), pp. 57–70 (2011).
Kroeger, O.: Plato on reification and intellectual property. Mag. Phil. Thesis Universität Wien, (2012).
Laprie, J.C.: Dependable computing and fault tolerance: concepts andterminology. FTCS-15 pp. 2–11 (1985).
Laski, J.: Programming faults and errors: towards a theory of software incorrectness. Annals of Software Engineering 4 pp. 79–114 (1997).
Lemley, M.A., Risch, M. Sichelman, T., Polk Wagner, R.: Life after Bilsky. Stanford Law Review,63, pp. 1315–1347 (2010).
Mili, A., Frias, M.F., Jaoua, A.: On faults and faulty programs. P. Höfneret al. (Eds.): RAMiCS 2014, LNCS 8428, pp. 191–207, (2014).
Ogilvie, J.W.L.: Defining computer program parts under Learned Hand’s abstractions test in software copyright infringement cases. Michigan Law Review 91, pp. 526–570, (1992).
Ploski, J., Rohr, M., Schwenkenberg, P., Hasselbring, W.: Research issues in software fault categorization. ACM Software Engineering Notes 32(6), pp. 1–8 (2007).
Plotkin, R.: Computer programming and the automation of invention: a case for software patent reform. International Review of Law, Computersand Technology, 17(3), pp. 337–346 (2003).
Raman, V., Kres-Gazit: Explaining impossible high-level robot behaviours. IEEE Transactions on Robotics 29(1), pp. 94–1004 (2013).
Rattan, D., Bathia, R. Singh, M.: Software clone detection: A systematic review. Information and Software Technology, 55, 1165–1199 (2013).
Risch, M.: A surprisingly useful requirement. George Mason Law Review 19(1), pp. 57–111 (2011).
Saha, S., Saha, R. K., Prasad, M.K.: Harnessing evolution for multi-hunkprogram repair. IEEE ICSE 2019 (2019).
Seymore, S. B., The Research Patent. Vanderbilt Law Review, Vol. 74,pp. 143-186, Vanderbilt Law Research Paper No. 20-25, (2021).
Sumner, J.P., Lundberg, S.W.: Patentable computer program features as uncopyrightable subject matter. AIPLA Q.J. 17, pp. 237–155 (1989).
Wong, W.E. et. al.: A survey of software fault localization. IEEE Transactions on Software Engineering, 428 pp. 707–740 (2016).
Xiaojian, L., Ting J., Xiaofeng, D.: Formal definition of program faults and hierarchy of program fault-tolerant abilities. IEEE ICISCE2017, (2017).
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2022 Jan Aldert Bergstra

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Authors retain copyright and, if appropriate, performance rights but licence the journal to publish submissions. The lead author confirms that the submission is bound by the CC Attributtion Share Alike 4.0 licence.