- Home
- Rudy Rucker
Seek!: Selected Nonfiction Page 6
Seek!: Selected Nonfiction Read online
Page 6
One problem in using an abacus or a counting board is that the answer is ruined if you forget to do one of the carry operations. The beginnings of a solution were provided by an odometer described by Heron of Alexandria in Roman times. Just like today, Heron's odometer was a device to measure how far a vehicle such as a chariot had rolled. The idea was to have a series of linked gears, where a low-ranking gear would have to turn all the way around before moving the next higher-ranking gear one notch.
In 1644, the great French philosopher-mathematician Blaise Pas-
Page 41
cal used the idea of the odometer gear-train to create a hand-held mechanical adding machine which he proudly named the Pascaline. Instead of only turning the lowest-ranking gear one notch at a time, like in an odometer, users of the Pascaline would use a stylus to turn each of eight wheels by an appropriate amount to represent the digits of a number to be added into the result. In the 1950s, in the days before pocket calculators, it was common to see cheap plastic Pascaline-like devices for sale in gift shops.
Numerous variations on the Pascaline arose. One of the harder problems was to create a machine which could multiply. The philosopher Leibniz attempted one such device in 1673, but it didn't work completely reliably. It also had the flaw that the user couldn't just put in the numbers, turn a crank and get an answer; instead the user had to carry out several intermediate steps.
Babbage's Difference Engine
The high point of gear-based calculation came with the work of Charles Babbage and his followers in the mid 1800s. This was the height of the steam age - of locomotives and spinning jennies. So why not a machine to crank out calculations just as a power-loom weaves cloth? The ideal application for wholesale, repetitive calculations is the generation of mathematical tables, such as tables of logarithms and of trigonometric functions. The science of the 1800s made extensive use of such tables, and of other kinds of tables as well, for instance astronomical tables giving the computed positions of celestial bodies at various times, and life insurance tables giving the expected earnings or annuities of people of various ages.
Babbage hit on the idea of building a machine out of gears which could calculate and print mathematical tables. Instead of allowing errors to slip in by passing a written result to a typesetter, why not let the calculating machine set the type itself? It was a most appropriate idea for Industrial Revolution Britain.
Babbage called his first proposed computing device a difference engine. Far from being a general purpose computer, a difference engine was a very specialized clockwork device designed to use the
Page 42
A detail of Scheutz's Difference Engine.
(Smithsonian Institution photo number 74-11269.)
so-called "method of differences" in order to generate the values of polynomial functions by using nested additions.2
Babbage completed a small model of his proposed difference engine. The model could handle three differences and numbers of six figures. In 1822, he convinced the Chancellor of the Exchequer to give him 1,500 pounds sterling towards the development of a difference engine that would work to twenty decimal places and sixth order differences.3
As it turned out, Babbage was an early example of a type of individual not uncommon in the computer field - a vaporware engineer, that is, a compulsive tinkerer who never finishes anything.
2. In general, a Babbage machine that handles N differences can tabulate the values of Nth degree polynomials. Thus two differences suffice for quadratic functions such as 3.9 x2 + 0.7x-1.1, three difference suffice for the cubic functions involving x3, and so on. Trigonometric and logarithmic functions can be accurately approximated by polynomials of a high enough degree.
3. Unless a finitely long decimal number happens to represent a simple fraction, its very last decimal place is always a source of inaccuracy - due to the fact that the endless digits beyond the last place are being ignored. As you add and multiply these
(footnote continued on next page)
Page 43
Babbage's draftsmen, toolmakers, and workmen were unable to finish any substantial part of the difference engine because Babbage kept having new ideas and changing the plans. Over the ten years following his initial grant, he spent 17,000 pounds of the government's money and a comparable amount of his own. Finally the government cut off support, and Babbage's workmen quit.
Though Babbage complained a lot about the limits of the gearmaking technology of his time, but there was in fact no real practical barrier to completing a functioning difference engine. Inspired by Babbage, the Swedish publisher and inventor Georg Scheutz did eventually complete and sell two working difference engines which handled fifteen digits and four orders of differences. Rather than being envious, the big-hearted Babbage encouraged Scheutz and helped him sell his first machine to an astronomical observatory in Albany, New York.
Writing in 1859, the American astronomer Benjamin A. Gould reported on the first real computation carried out by the first difference engine, the first extensive computation by a machine:
The strictly algebraic problems for feeding the machine made quite as heavy demands upon time, and thought, and perseverance, as did the problem of regulating its mechanical action; but soon all was in operation and . . . the True Anomaly of Mars was computed and stereotyped [printed on papiermaché molds] for intervals of a tenth of day throughout the cycle; and a sufficient number of the plates electrotyped, to enable me to be confident that all the difficulties were surmounted. Since that time the Eccentric Anomaly of Mars and the logarithm of its Radius-Vector have been computed . . . making a series of tables upon which the reputation of the engine may well be rested.4
(footnote continued from previous page)
numbers, the last-place errors work their way to the left at a rate of about one place per operation. Babbage wanted to carry out about six steps of computation with each of his numbers, and he wanted twelve of the digits to be of perfect accuracy. So to be safe he planned to use twenty digits. Even if the last six digits became corrupted by a six-step calculation, the first fourteen would still be good, and the first twelve would be, as Babbage might have said, impeccable.
4. Quoted in Uta C. Merzbach, Georg Scheutz and the First Printing Calculator, Smithsonian Institution Press, 1977, pp. 26, 27
Page 44
This sounds like nobly pure science indeed. The Eccentric Anomaly of Mars! All right! Scheutz's second difference engine was used to compute something more commercial: William Farr's English Life Tables, a book which used information about 6.5 million deaths to show life insurance annuities, broken down for single and married people according to age.
The Analytical Engine
One reason that Babbage never finished his difference engine was that he was distracted by dreams of an even more fabulous piece of vaporware, a machine he called the analytical engine.
Babbage's description of the analytical engine is in fact the very first outline for a programmable computer, a machine that would be, in principal, capable of carrying out any kind of computation at all. The analytical engine was to have a ''mill" that carried out nested additions like the difference engine, and was also to have a "store" which would provide a kind of scratch paper: short-term memory for temporary variables used by the calculation. The novel idea was that the actions of the mill were to be controlled by a user-supplied program. In what form did Babbage plan to feed programs to the analytical engine? With punch cards!
Although we associate punch cards with IBM and mainframe computers, it turns out that they were first used on French looms. The invention was made by Joseph Marie Jacquard in 1801. By coding up a tapestry pattern as a series of cards, a "Jacquard loom" was able to weave the same design over and over, without the trouble of a person having to read the pattern and set the threads on the loom. Babbage himself owned a woven portrait of Jacquard that was generated by a loom using 24,000 punch cards.
One of the most lucid advocates of Babbage's analytical eng
ine was the young Ada Byron, daughter of the famed poet. As Ada memorably put it,
The distinctive characteristic of the Analytical Engine, and that which has rendered it possible to endow mechanism with such extensive faculties as bid fair to make this engine the executive right-hand of abstract algebra, is the introduction into it of the principle which Jacquard devised for regulating,
Page 45
by means of punched cards, the most complicated patterns in the fabrication of brocaded stuffs . . . We may say most aptly, that the Analytical Engine weaves algebraical patterns just as the Jacquard loom weaves flowers and leaves.5
In reality, no analytical engine was ever completed. But the idea stands as a milestone. In 1991, the science fiction writers William Gibson and Bruce Sterling published a fascinating alternative history novel, The Difference Engine, which imagines what Victorian England might have been like if Babbage had been successful. (The book is really about analytical engines rather than difference engines.) Just as our computers are managed by computer hackers, the analytical engines of Gibson and Sterling are manned by "clackers." Here is their description of a visit to the Central Statistics Bureau in their what-if London:
Behind the glass loomed a vast hall of towering Engines - so many that at first Mallory thought the walls must surely be lined with mirrors, like a fancy ballroom. It was like some carnival deception, meant to trick the eye - the giant identical Engines, clock-like constructions of intricately interlocking brass, big as rail-cars set on end, each on its foot-thick padded blocks. The whitewashed ceiling, thirty feet overhead, was alive with spinning pulley-belts, the lesser gears drawing power from tremendous spoked flywheels on socketed iron columns. White-coated clackers, dwarfed by their machines, paced the spotless aisles. Their hair was swaddled in wrinkled white berets, their mouths and noses hidden behind squares of white gauze.6
In the world of The Difference Engine, one can feed in a punch card coded with someone's description, and the Central Statistics Bureau
5. Ada Augusta, Countess of Lovelace, "Notes on Menabrea's Sketch of the Analytical Engine," reprinted Philip and Emily Morrison, eds., Charles Babbage And His Calculating Engines: Selected Writings by Charles Babbage and Others, Dover 1961, p. 252.
6. William Gibson and Bruce Sterling, The Difference Engine, Bantam Books 1991, pp. 136, 137
Page 46
Engines will spit out a "collection of stippleprinted Engine-portraits" of likely suspects.
Punch Card Memory Storage
In our world, it wasn't until the late 1800s that anyone started using punch cards for any purpose other than controlling Jacquard looms. It was Herman Hollerith who had the idea of using punch cards in order to organize information for the U.S. census. He designed machines for tabulating the information on punch cards, as well as a variety of calculating devices for massaging the info. He got the contract for the census of 1890, and his machines were installed in the census building in Washington, D.C. A battery of clerks transferred written census information to punch cards and fed the cards into tabulators. The tabulators worked by letting pins fall down onto the cards. Where a pin could go through, it would touch a little cup of mercury, completing a circuit and turning a wheel of a clock-like counter arrangement similar to the Pascaline.
The work was quite monotonous, and one of the employees later recalled:
Mechanics were there frequently . . . to get the ailing machines back in operation. The trouble was usually that somebody had extracted the mercury . . . from one of the little cups with an eye-dropper and squirted it into a spittoon, just to get some un-needed rest.7
Hollerith's company eventually came under the leadership of a sharp-dealing cash register salesman named Thomas J. Watson - who a few years later would change the business's name from the Computing-Tabulating-Recording Company to International Business Machines, a.k.a. IBM.
With punch card readers well in place, the realization of machines like the analytical engine still required a technology to handle what Babbage called the "store," a readily accessible short-term memory that the machine can use for scratch paper, much as
7. Quoted in Geoffrey D. Austrian, Herman Hollerith: Forgotten Giant of Information Processing, Columbia University. Press, 1982, p. 72
Page 47
we write down intermediate results when carrying out a multiplication or a long division by hand. In modern times, of course, we are used to the idea of storing memory on integrated circuit chips - our RAM - and not having to worry about it. But how did the first computer designers deal with creating rapidly accessible memory?
Electromechanical Computers
The first solution used was an electromechanical device called a relay. A primitive two-position relay might be designed like a circuit-breaker switch. In this type of switch, a spring holds it in one position while an electromagnet can pull it over into another position. If there is no current through the electromagnet, the relay stays in the "zero" or "reset" position, and if enough current flows through the electromagnet, the switch is pulled over to the "one" or "set'' position. With a little tinkering, it's also possible to make a wheel-shaped ten-position relay that can be electromechanically set to store the value of any digit between zero to nine. Historically, the technology for these kinds of relays was developed for telephone company switching devices - which need to remember the successive digits of the phone numbers which callers request.
In the 1930s, the German scientist Konrad Zuse built a primitive relay-based computer that could add, multiply, and so on. As well as using relays for short-term memory storage, Zuse used them for switching circuits to implement logical and arithmetic operations much more general than the repeated additions of a difference engine. The Nazi government's science commission was unwilling to fund Zuse's further research - this was the same Nazi science commission which sent scouts across the Arctic ice to look for a possible hole leading to the hollow earth. They didn't see the promise of electromechanical computation.
In the early 1940s, a rather large electromechanical relay-based computer called the Mark I was constructed at Harvard University under the leadership of Howard Aiken. Aiken's funding was largely provided by Thomas J. Watsoh's IBM. The Mark I could read data and instructions from punch cards, by then known as "IBM cards," and was built of nearly a million parts. When it was running, the on/off clicking of its relays made a sound like a muffled hailstorm.
Page 48
Electronic Computers
The next stage in the development of the computer was to replace electromechanical components by much faster electronic devices. In other words, use vacuum tubes instead of relays for your logic circuits and short-term memory storage. Although vacuum tubes look like rather sophisticated devices, they are a lot funkier than one first imagines. Storing one single bit of memory - a simple zero or one - typically took at least two vacuum tubes, arranged into a primitive circuit known as a flip-flop. Even in the 1950s, electrical engineers had to learn a lot about relays and flip-flop circuits. In his novel V., the ex-engineering student and master novelist Thomas Pynchon includes a jazzy ditty on this theme by his bebop jazz-musician character McClintic Sphere:
Flop, flip, once I was hip,
Flip, flop, now you're on top,
Set-Reset, why are BEset
With crazy and cool in the same molecule.8
A man named John Atanasoff began building a small special purpose computer using 300 vacuum tubes for memory at Iowa State University around 1940. Atanasoff's computer was intended for solving systems of linear equations, but he abandoned the project in 1942. It is unclear if his machine was ever fully operational. But this work was significant in that it demonstrated the possibility of making a computer with no moving parts. Babbage's analytical engine would have been purely made of moving gears, the Mark I was a mixture of electrical circuits and spring-loaded relay switches, but Atanasoff's device was completely electronic, and operated at a much faster speed.