Miscomputation in software: Learning to live with errors
Tomas Petricek (Alan Turing Institute, United Kingdom)

TL;DR
This paper reviews 60 years of programming error management, exploring diverse paradigms like formal methods, testing, engineering, and artistic approaches to understand how software development can better handle errors.
Contribution
It provides a comparative analysis of different error-handling paradigms in programming, highlighting their assumptions and potential for cross-paradigm insights.
Findings
Formal methods aim to eliminate errors mathematically.
Testing-based scientific methods focus on detecting errors.
Artistic live coding embraces errors as creative elements.
Abstract
Computer programs do not always work as expected. In fact, ominous warnings about the desperate state of the software industry continue to be released with almost ritualistic regularity. In this paper, we look at the 60 years history of programming and at the different practical methods that software community developed to live with programming errors. We do so by observing a class of students discussing different approaches to programming errors. While learning about the different methods for dealing with errors, we uncover basic assumptions that proponents of different paradigms follow. We learn about the mathematical attempt to eliminate errors through formal methods, scientific method based on testing, a way of building reliable systems through engineering methods, as well as an artistic approach to live coding that accepts errors as a creative inspiration. This way, we can explore…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
