|“||Buggy code (i.e., flawed computer programs) is probably the oldest unsolved problem in computer science, and there is no particular reason to think that research can solve the problem once and for all.||”|
A bug is an unexpected fault or malfunction in a computer program or system. The term is credited to Grace Hopper, an early pioneer in computing and the creator of COBOL. It is said that one day in the late 1940s, she was responsible for cleaning out ENIAC, the first working computer. She was trying to find out why the computer was not working correctly. She found a real bug (a moth) lodged in a mechanical relay.
Buggy software is largely a result of the fact that, despite many years of serious and productive research in software engineering, the creation of software is still more craft than science-based engineering. Furthermore, the progress that has been made is only minimally relevant to the legacy software systems that remain in all infrastructures.
The fact that essentially all software systems contain bugs is not new. Bugs can result from a variety of causes, ranging from low-level errors (e.g., a mathematical expression uses a plus sign when it should use a minus sign) to fundamental design flaws (e.g., the system functions as it was designed to function, but these functions are inappropriate in the circumstances of operation).
- ↑ Information Technology for Counterterrorism: Immediate Actions and Future Possibilities, at 5.
- ↑ Technology Assessment: Artificial Intelligence: Emerging Opportunities, Challenges, and Implications, at 60 n.2.
- "Overview" section: Information Technology for Counterterrorism: Immediate Actions and Future Possibilities, at 41.