Free Novel Read

It Began with Babbage Page 10


  After America entered World War II, military needs, of course, had priority over all else. Weapon systems had to be designed, built, and tested for accuracy and reliability before they could be deployed in battle. Civilian scientists, mathematicians, and engineers were assigned to military establishments or projects under military command. Stibitz was seconded to the National Defense Research Council. One of the projects in which he became involved was the development of precise test equipment for checking the accuracy of a certain kind of “gun director” called the M-9.6 Stibitz suggested that an all-digital computer made from relays as the basic circuit element might do the job.7 Thus came about the second of the Bell Laboratories machines—the Model II, or Relay Interpolator—so named because its principal computational task was the mathematical process called interpolation, although it was also used for other kinds of tasks, such as calculating roots of polynomials and solving differential equations.8 Like the Complex Computer/Model I, the Relay Interpolator/Model II was controlled by “orders” punched on paper tape and communicated through teletype readers.

  In 1942, Stibitz conceived the concept of floating-point arithmetic, which is vital for scientific computation because it allows numbers ranging from the very small to the very large to be represented in a common fashion.9 As we will see later, he was not the first to conceive this idea; however, it seems likely that he invented it in ignorance of other prior work done elsewhere in Germany.

  The war dominated all. Ideally, the proof positive of the accuracy and reliability of antiaircraft guns could only be established in the battlefield. To test the gun director’s accuracy or correctness before deployment, the field conditions would have to be simulated. A plane would be flown, as if on a bombing run. The shells, of course, would not be fired at it; instead, the indicators on the gun director would record data on the plane’s movement on a moment-by-moment basis, along with data recording the succession of “gun orders,” and one would have to calculate the relative positions of plane and shell at the moment the shell would burst. Such calculations would take “a team of five computers” a week to perform.10 Old habits die hard! Here, computer referred to a person.

  And so began a project to build a relay computing machine to carry out these calculations automatically. The outcome was named the Ballistic Computer. This machine—Bell’s Model III relay machine—was still a relatively special-purpose, electromechanical, perforated paper tape-controlled machine. The Model II had an adder circuit that would do multiplication by repeated addition, and subtraction by complementing the number to be subtracted (the “subtrahend”) and adding this complement to the number to be subtracted from (the “minuend”).11 The Model III had specialized circuits for multiplication and division.12 The Model II had five registers to store numbers during a computation.13 In the Model III, there were four registers dedicated to the arithmetic circuits themselves, but in addition there were a set of 10 “storage registers” used to hold both intermediate results of the arithmetic calculations and the final results.14 Perhaps the most compelling difference between the two models was that although the Model II contained about 500 relays,15 the Model III was composed of more than 1300 relays.16

  The most significant computer in the Bell Laboratories lineage was the Model V. (The Model IV was only slightly different from the Model III, whereas the Model VI was a simplified version of the Model V.17) In the Model V, the Bell Laboratories family reached its fullest efflorescence; it was seen as a genuine general-purpose programmable computer.18 The project, begun in 1944, was a quantum jump over its predecessors in physical size and complexity. It contained 9000 relays, 50 different pieces of “teletype apparatus,” weighed about 10 tons, and occupied a floor space of some 1000 square feet. It also exhibited a marked improvement in its flexibility, generality of purpose, reliability, and capacity to operate autonomously without human intervention. Two “copies” of the Model V were built—one completed in 1946 that went to a federal agency in Langley, Virginia, that was the forerunner to the National Aeronautics and Space Administration, and the other, completed in 1947, was sent to the U.S. Army’s Ballistic Research Laboratory (BRL) in Aberdeen, Maryland.19

  Here, then, comparing the Model V with its Bell predecessors, is an exemplar of evolution in technological complexity20—a complexity manifested even in its complete documentation, estimated at the time of its development to fill “hundreds of pages.”21 We get a sense of the “general-purposeness” of the Model V from the range of problems it was capable of solving, which included systems of linear equations, ordinary differential equations, interpolation, evaluation of functions of different kinds, and partial differential equations.22

  A remarkable aspect of the Model V was that each copy of the machine was comprised of two “computers.”23 Each computer was self-sufficient in that it had all the components necessary for solving a problem except for the “tape-reading devices”—the input system, in present-centered language.24 Each computer had a set of 15 storage registers, several special registers, and an arithmetic unit that performed all four arithmetics as well as square root extraction; control units that accepted “orders” from tape and directed the execution of these orders; registers that received and stored tables of numbers from an input tape; printer control; and teletype printers (the output unit).

  However, the two computers in each computing system shared “permanent tables” that held values of trigonometric and logarithmic functions.25 They also shared the “input organs”—several paper tape transmitters through which orders and data were communicated to the individual computers. A problem could be assigned to a single computer or, for large problems, distributed to the two computers.26 In present-centered language, the Model V provided an early form of multiprocessing—that is, the ability to execute a single computational job by distributing its component tasks to more than one machine, which could then operate simultaneously.

  Another significant feature of the Model V was the “problem tape,” one of the input tapes to the system. One of its functions was to identify the start and end of a problem or a subproblem; another function was to provide a check that the routines and data tapes required for a given problem were the correct ones. A third function was to control the printing of headings on the output “answer sheets.” When the machine began operation, the problem tape was the first to be activated. Indeed, it was responsible for “supreme control” of the progress of a computation.27

  It would be misleading to call the problem tape a rudimentary “operating system” (in present-centered language). Yet, by exerting supreme control over the execution of a problem, it has features of what later would be called a system program.

  III

  Let us return to 1938, the year in which Stibitz and Williams began their work on the Complex Computer and the decision to use relays as the basic circuit element. A relay is just a switch. When it is closed, or ON, the current flows from its input terminal to its output terminal; when open, or OFF, current flow is blocked. If two relays are connected in series, a current will flow through the circuit only if both relays are ON; if either is OFF, current will not flow. If two relays are connected in parallel, then current flows if either one or the other or both relays are ON.

  So a relay has two “states”: ON and OFF (in present-centered language, a bistable device). Suppose the two states, instead of being termed ON and OFF are called TRUE and FALSE. Let us call these two states TRUE and FALSE logical or truth values. In that case, we may also say that if a current flows through a circuit, its value is TRUE; if no current can flow through, its value is FALSE.

  So now, a series connection of two relay switches, X and Y, behaves according to the following statements:

  If X = TRUE and Y = TRUE, then X and Y = TRUE; otherwise, X and Y = FALSE.

  If X = FALSE and Y = FALSE, then X or Y = FALSE; otherwise, X or Y = TRUE.

  Now, if a relay switch is ON, its complementary state is OFF and vice versa. Let us call the complement of
a state by the symbol not. In which case, we also have a behavior pattern for a relay X:

  If X = TRUE, then not (X) = FALSE; otherwise, not (X) = TRUE.

  All this is no mere esoteric conceit. During the mid 19th century, at about the time Babbage was still fretting over his Analytical Engine, another Englishman quite unlike him in social origin named George Boole (1819–1864), born into an impecunious working-class family in Lincoln, England—possessed of the most modest of ordinary school education, almost entirely self-taught in Greek, Latin, German, Italian, French, mathematics, logic, and philosophy—would contribute many papers to mathematical journals and write several books on mathematics and logic. Among them was The Mathematical Analysis of Logic (1847) that, according to one historian of mathematics, probably earned him a professorship of mathematics in Queen’s College in Cork, Ireland, in 1849.28 However, it was a later book, the loftily titled An Investigation of the Laws of Thought (1854), that granted Boole a lasting place in the annals of modern thought.

  What Boole did was to establish the basis of a new algebra of logic. The variables of this algebra could only have the two truth values—TRUE and FALSE—and were thus called logical variables or symbolic variables. The rules of this algebra—its “calculus”—allowed one to deduce the truth or falsehood of logical expressions or propositions built up by combining logical variables with the logical operations and, or, and not.

  Boole died at age 49 in Cork of an illness brought on by getting a drenching in the rain, but not before receiving much recognition, including an honorary LLD degree from the University of Dublin and a medal from the Royal Society. More than a century later, a crater on the moon was named after him.

  Boole’s Laws of Thought had consequences; the laws would later be systematized by other eminent mathematicians, including Augustus de Morgan, Lovelace’s one-time tutor; American mathematician–philosopher Charles Sanders Peirce (1839–1914); and British economist and logician William Stanley Jevons (1835–1882). The result came to be called Boolean algebra and the development in mathematical logic of the propositional calculus for making formal inferences about logical propositions.

  In 1937, Boolean algebra formed the logical foundation of the design of circuits composed of switches, such as relays, later called the discipline of switching circuit design. Thus, a Victorian professor of mathematics laid one of the cornerstones in the making of a science of computing. If Babbage’s ghost hovers continually over this story, Boole’s spirit does as well, making his appearance 75 years after his death—and, unlike Babbage, Boole contributed directly to the logical basis of computer design.

  IV

  In 1937, Claude Shannon (1916–2001), a 21-year-old graduate student, submitted a thesis for a master’s degree in electrical engineering at MIT. The thesis was titled A Symbolic Analysis of Relay and Switching Circuits.29 In this work, Shannon drew an analogy between the basic idea in propositional calculus (or, equivalently, in Boolean algebra) and the basic behavior of relay circuits along the lines shown in Table 5.1 (where + does not mean the arithmetic operation of add).

  In 1938, Shannon published a paper, based on his thesis, in the Transactions of the American Institute of Electrical Engineers. The timing of this publication turned out to be important for Shannon’s reputation. In the Soviet Union, a Russian logician and engineering theorist named Victor Shestakov (1907–1987) had proposed a theory of switching circuits based on Boolean algebra in 1935. However, he did not publish his work (in Russian) until 1941.

  Shannon would later co-invent (with Warren Weaver [1894–1978]) a branch of applied mathematics called information theory that laid the theoretical foundation for communication. As a scientific eclectic, his work crossed several scientific boundaries. When he died in 2001, Shannon was a much-honored scientist, but his place in this story rests primarily (but not solely, as we will later see) in that 1937 master’s thesis.

  TABLE 5.1 Correspondence Between Relay Circuit and Propositional Calculus Concepts

  Symbol

  Interpretation in relay circuits

  Interpretation in propositional calculus

  X

  The circuit X

  The proposition X

  0

  The circuit X is open

  Proposition X is false

  1

  The circuit X is closed

  Proposition X is true

  X + Y

  The parallel connection of X and Y

  The proposition that is true if X or Y is true

  XY

  The series connection of X and Y

  The proposition that is true if X and Y is true

  X′

  The circuit that is open when X

  The contradiction of proposition X

  is closed, and closed when X is open

  *

  It was not only Boolean algebra that he introduced into switching circuit design, but also the fact that the binary states ON and OFF (or open and closed, in Shannon’s terminology) could be represented by the truth values TRUE and FALSE from propositional logic, and the binary digits 1 and 0, respectively. Boolean algebra or propositional logic, switching circuit design, and binary arithmetic came together by way of Shannon.

  Thus we find George Stibitz, in his 1940 memorandum, explicating the advantages of the binary system in the context of computers—notably, the simplicity of binary addition: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 10. This “extraordinary” simplicity, Stibitz wrote, made it so much easier to design computing machines composed of relays, for a relay has only two positions: open and closed. The former represents the binary digit 0; the latter, the digit 1.30

  One of the earliest textbooks on the design of arithmetic units for digital computers, published in 1955, described the role Boolean algebra could play in computer design. It is enough for any basic circuit element having just two states (that is, is a bistable device) to be represented by a Boolean variable—not just relays, but other circuit elements that came to be used in later computers, such as vacuum tubes and diodes. Associated with Boolean variables are three fundamental Boolean operations AND (logical product), OR (logical sum), and NOT (complement). Using these operations, Boolean expressions can represent any circuit composed of bistable or binary circuit elements.31

  For example, a switching network with four inputs A, B, C, D and a single output E such that 1 is produced on E only when both A and B are 1s or when both C and D are 1s (Figure 5.1) can be expressed by the Boolean expression E = AB + CD, where AB and CD represent A AND B, C AND D, respectively, and the + represents OR.32 A very different switching network is shown in Figure 5.2, represented by the Boolean expression Z = (A + C)(A + D)(B + C)(B + D). However, using the laws of Boolean algebra, one can transform this last expression to the expression E = AB + CD, corresponding to the much simpler and economic circuit of Figure 5.1.33 So the power of Boolean algebra lay not only in its concise notation, but also as a calculus.

  FIGURE 5.1 A Logic Circuit for E = AB + CD.

  FIGURE 5.2 A Logic Circuit for Z = (A + C)(A + D)(B + C)(B + D).

  V

  We have seen that, ever since Babbage, the desire for automatic computation was stimulated by the felt need for the speedy, accurate, and reliable production of tables of all sorts. In Babbage’s time, these tables were mathematical in nature. Later, after Hollerith, punched-card tabulators were used busily through the first decades of the 20th century in compiling statistical tables and mortality data, and in accounting and other business-related statements.

  Beginning in about 1928, Hollerith-style data processing machines began to be used extensively to produce astronomical tables. In particular, a Cambridge-educated New Zealander, Leslie John Comrie (1893–1950), superintendent of the Nautical Almanac Office in England, used the Hollerith machine to compile tables of the moon’s position.34 In the United States, Wallace J. Eckert (1902–1971), an astronomer, teaching in Columbia University, and seriously interested in automating astronomical calcu
lations, established in 1926 a computer laboratory in the university.35 This invoked the interest of Thomas J. Watson (1874–1956), president of IBM, the undisputed industrial leader in punched-card data processing machines. Watson was persuaded to establish a computational bureau at Columbia. In 1933, financed by IBM, this computer laboratory—for that is what it was—was expanded and named the Thomas J. Watson Astronomical Computing Bureau, a joint enterprise of IBM, the department of astronomy in Columbia, and the American Astronomical Society.36 Eckert was one of those in the electromechanical era who understood the need for automatic digital computing machines to support the mathematical work of scientists. So did Stibitz at Bell Laboratories, as we have seen. And so did a graduate student in physics in Harvard University named Howard H. Aiken (1900–1973).

  These seemed to be times when memoranda were being written on computing and computers, not with a view to publication, but as exploratory documents to be circulated and read by a select group of people to stimulate discussion and instigate practical action. Stibitz’s 1940 paper was an example. Three years earlier, Aiken wrote a memorandum titled “Proposed Automatic Calculating Machine,” which would be published in 1964 as a historical document.37 Aiken acknowledged Babbage’s pioneering work and that of his successors, including Hollerith. Like all those who preceded him, Aiken was driven by a dissatisfaction and a resulting need.

  He observed that recent developments in the exact sciences (such as physics, chemistry, and astronomy) entailed the definition and use of many new mathematical relationships, most of which were described in terms of infinite series or processes. The methods of tabulating these functions were inadequate, and so their application to scientific problems was severely hindered.38 Indeed, it was not just that the methods of tabulation were insufficient, because of their slowness and propensity for errors, but also there were problems in physics that could not be solved because of the lack of means for their computation.39