This has driven the evolution of programming languages from the original machine language to assembly language to "higher-level" programming languages (Admiral Grace Hopper's work inventing COBOL being among the first), and still later to so-called "third-generation" and "fourth-generation" programming environments.
The more different ways there are for information used by one module to be changed by the action of another module, the more difficult it is for the programmer to avoid mistakes.
The probability of such mistakes can be reduced by programming according to conventions about variable names, but any use of global variables makes it more difficult to keep the programming task within the grasp of an individual programmer.
For example, the code that invokes the module might beJDAY = JULIAN(YEAR,MONTH,DAY)
where the module JULIAN takes the particular values given to it for the arguments, YEAR, MONTH, and DAY, and uses them to calculate the number of days since the Julian calendar's base date.
For example, word processors, spreadsheets, presentation software, and database software, although they accomplish quite different tasks, all need to be able to permit the user to save work in progress into a data file, with the user being able to select the disk drive, folder name, file name, and in some cases file format.
Every version of the Macintosh OS and every version of Windows has included, as part of the operating system, a module that provides that functionality.
and so on.
For example, if one argument is supposed to be a file name, the code could check to see whether it contains any characters that are not legal to be parts of a filename in that operating system, whether it contains too many characters to be a legal file name, etc.
The recently discovered bugs in Eudora, Netscape Communicator, and Microsoft Outlook, in which the filename of an E-mail attachment was not checked for length before the name was copied into system RAM, is an example of a vulnerability resulting from excessively trusting code design.
J. M. Fenster, 1998, "Amazing Grace." American Heritage of Invention & Technology, Fall, 1998, Volume 14, Number 2, pages 24-31.
Please E-Mail comments or suggestions to "piccard@ohio.edu".
© Copyright 1998 Richard D. Piccard