![]()
Tools for Thought by Howard Rheingold
April, 2000: a revised edition of Tools for Thought is available from MIT Press, including a revised chapter with 1999 interviews of Doug Engelbart, Bob Taylor, Alan Kay, Brenda Laurel, and Avron Barr.The idea that people could use computers to amplify thought and communication, as tools for intellectual work and social activity, was not an invention of the mainstream computer industry or orthodox computer science, nor even homebrew computerists; their work was rooted in older, equally eccentric, equally visionary, work. You can't really guess where mind-amplifying technology is going unless you understand where it came from.- HLR
Chapter One:
The Computer Revolution Hasn't Happened YetSouth of San Francisco and north of Silicon Valley, near the place where the pines on the horizon give way to the live oaks and radiotelescopes, an unlikely subculture has been creating a new medium for human thought. When mass-production models of present prototypes reach our homes, offices, and schools, our lives are going to change dramatically.
The first of these mind-amplifying machines will be descendants of the devices now known as personal computers, but they will resemble today's information processing technology no more than a television resembles a fifteenth-century printing press. They aren't available yet, but they will be here soon. Before today's first-graders graduate from high school, hundreds of millions of people around the world will join together to create new kinds of human communities, making use of a tool that a small number of thinkers and tinkerers dreamed into being over the past century.Nobody knows whether this will turn out to be the best or the worst thing the human race has done for itself, because the outcome of this empowerment will depend in large part on how we react to it and what we choose to do with it. The human mind is not going to be replaced by a machine, at least not in the foreseeable future, but there is little doubt that the worldwide availability of fantasy amplifiers, intellectual toolkits, and interactive electronic communities will change the way people think, learn, and communicate.
It looks as if this latest technology-triggered transformation of society could have even more intense impact than the last time human thought was augmented, five hundred years ago, when the Western world learned to read. Less than a century after the invention of movable type, the literate community in Europe had grown from a privileged minority to a substantial portion of the population. People's lives changed radically and rapidly, not because of printing machinery, but because of what that invention made it possible for people to know. Books were just the vehicles by which the ideas escaped from the private libraries of the elite and circulated among the population.
The true value of books emerged from the community they made possible, an intellectual community that is still alive all over the world. The printed page has been a medium for the propagation of ideas about chemistry and poetry, evolution and revolution, democracy and psychology, technology and industry, and many other notions beyond the ken of the people who invented movable type and started cranking out Bibles.
Because mass production of sophisticated electronic devices can lag ten years or more behind the state of the art in research prototypes, the first effects of the astonishing achievements in computer science since 1960 have only begun to enter our lives. Word processors, video games, educational software, and computer graphics were unknown terms to most people only ten years ago, but today they are the names for billion-dollar industries. And the experts agree that the most startling developments are yet to come.
A few of the pioneers of personal computing who still work in the computer industry can remember the birth and the dream, when the notion of personal computing was an obscure heresy in the ranks of the computing priesthood. Thirty years ago, the overwhelming majority of the people who designed, manufactured, programmed, and used computers subscribed to a single idea about the proper (and possible) place of computers in society: "computers are mysterious devices meant to be used in mathematical calculations." Period. Computer technology was believed to be too fragile, valuable, and complicated for nonspecialists.
In 1950 you could count the people who took exception to this dogma on the fingers of one hand. The dissenting point of view shared by those few people involved in a different way of thinking about how computers might be used. The dissenters shared a vision of personal computing in which computers would be used to enhance the most creative aspects of human intelligence--for everybody, not just the
technocognoscenti .Those who questioned the dogma of data processing agreed that computers can help us calculate, but they also suspected that if the devices could be made more interactive, these tools might help us to speculate, build and study models, choose between alternatives, and search for meaningful patterns in collections of information. They wondered whether this newborn device might become a communication medium as well as a calculating machine.
These heretical computer theorists proposed that if human knowledge is indeed power, then a device that can help us transform information into knowledge should be the basis for a very powerful technology. While most scientists and engineers remained in awe of the giant adding machines, this minority insisted on thinking about how computers might be used to assist the operation of human minds in nonmathematical ways.
Tools for Thought focuses on the ideas of a few of the people who have been instrumental in creating yesterday's, today's, and tomorrow's human-computer technology. Several key figures in the history of computation lived and died centuries or decades ago. I call these people, renowned in scientific circles but less known to the public, the patriarchs. Other co-creators of personal computer technology are still at work today, continuing to explore the frontiers of mind-machine interaction. I call them the pioneers.
The youngest generation, the ones who are exploring the cognitive domains we will all soon experience, I call the Infonauts. It is too early to tell what history will think of the newer ideas, but we're going to take a look at some of the things the latest inner-space explorers are thinking, in hopes of catching some clues to what (and how) everybody will be thinking in the near future.
As we shall see, the future limits of this technology are not in the hardware but in our minds. The digital computer is based upon a theoretical discovery known as "the universal machine," which is not actually a tangible device but a mathematical description of a machine capable of simulating the actions of any other machine. Once you have created a general-purpose machine that can imitate any other machine, the future development of the tool depends only on what tasks you can think to do with it. For the immediate future, the issue of whether machines can become intelligent is less important than learning to deal with a device that can become whatever we clearly imagine it to be.
The pivotal difference between today's personal computers and tomorrow's intelligent devices will have less to do with their hardware than their software-- the instructions people create to control the operations of the computing machinery. A program is what tells the general-purpose machine to imitate a specific kind of machine. Just as the hardware basis for computing has evolved from relays to vacuum tubes to transistors to integrated circuits, the programs have evolved as well. When information processing grows into knowledge processing, the true personal computer will reach beyond hardware and connect with a vaster source of power than that of electronic microcircuitry--the power of human minds working in concert.
The nature of the world we create in the closing years of the twentieth century will be determined to a significant degree by our attitudes toward this new category of tool. Many of us who were educated in the pre-computer era shall be learning new skills. The college class of 1999 is already on its way. It is important that we realize today that those skills of tomorrow will have little to do with how to operate computers and a great deal to do with how to use augmented intellects, enhanced communications, and amplified imaginations.
Forget about "computer literacy" or obfuscating technical jargon, for these aberrations will disappear when the machines and their programs grow more intelligent. The reason for building a personal computer in the first place was to enable people to do what people do best by using machines to do what machines do best. Many people are afraid of today's computers because they have been told that these machines are smarter than they are--a deception that is reinforced by the rituals that novices have been forced to undergo in order to use computers. In fact, the burden of communication should be on the machine. A computer that is difficult to use is a computer that's too dumb to understand what you want.
If the predictions of some of the people in this book continue to be accurate, our whole environment will suddenly take on a kind of intelligence of its own sometime between now and the turn of the century. Fifteen years from now, there will be a microchip in your telephone receiver with more computing power than all the technology the Defense Department can buy today. All the written knowledge in the world will be one of the items to be found in every schoolchild's pocket.
The computer of the twenty-first century will be everywhere, for better or for worse, and a more appropriate prophet than Orwell for this eventuality might well be Marshall McLuhan. If McLuhan was right about the medium being the message, what will it mean when the entire environment becomes the medium? If such development does occur as predicted, it will probably turn out differently from even the wildest "computerized household" scenarios of the recent past.
The possibility of accurately predicting the social impact of any new technology is questionable, to say the least. At the beginning of the twentieth century, it was impossible for average people or even the most knowledgeable scientists to envision what life would be like for their grandchildren, who we now know would sit down in front of little boxes and watch events happening at that moment on the other side of the world.
Today, only a few people are thinking seriously about what to do with a living room wall that can tell you anything you want to know, simulate anything you want to see, connect you with any person or group of people you want to communicate with, and even help you find out what it is when you aren't entirely sure. In the 1990s it might be possible for people to "think as no human being has ever thought" and for computers to "process data in a way not approached by the information-handling machines we know today," as J.C.R. Licklider, one of the most influential pioneers, predicted in 1960, a quarter of a century before the hardware would begin to catch up with his ideas.
The earliest predictions about the impact of computing machinery occurred quite a bit earlier than 1960. The first electronic computers were invented by a few individuals, who often worked alone, during World War II. Before the actual inventors of the 1940s were the software patriarchs of the 1840s. And before them, thousands of years ago, the efforts of thinkers from many different cultures to find better ways to use symbols as tools led to the invention of mathematics and logic. It was these formal systems for manipulating symbols that eventually led to computation. Links in what we can now see as a continuous chain of thought were created by a series of Greek philosophers, British logicians, Hungarian mathematicians, and American inventors.
Most of the patriarchs had little in common with each other, socially or intellectually, but in some ways they were very much alike. It isn't surprising that they were exceptionally intelligent, but what is unusual is that they all seem to have been preoccupied with the power of their own minds. For sheer intellectual adventure, many intelligent people pursue the secrets of the stars, the mysteries of life, the myriad ways to use knowledge to accomplish practical goals. But what the software ancestors sought to create were tools to amplify the power of their own brains--machines to take over what they saw as the more mechanical aspects of thought.
Perhaps as an occupational hazard of this dangerously self-reflective enterprise, or as a result of being extraordinary people in restrictive social environments, the personalities of these patriarchs (and matriarchs) of computation reveal a common streak of eccentricity, ranging from the mildly unorthodox to the downright strange.
The software patriarchs came from wildly different backgrounds. Then as now, computer geniuses were often regarded as "odd" by those around them, and their reasons for wanting to invent computing devices seem to have been as varied as their personalities. Something about the notion of a universal machine enticed mathematicians and philosophers, logicians and code-breakers, whiz kids and bomb-builders. Even today, the worlds of computer research and the software business bring together an unlikely mixture of entrepreneurs and evangelists, futurians and utopians, cultists, obsessives, geniuses, pranksters, and fast-buck artists.
- Charles Babbage and Ada, Countess of Lovelace, lived in the London of Dickens and Prince Albert (and knew them both). A hundred years before some of the best minds in the world used the resources of a nation to build a digital computer, these two eccentric inventor-mathematicians dreamed of building their "Analytical Engine." He constructed a partial prototype and she used it, with notorious lack of success, in a scheme to win a fortune at the horse races. Despite their apparent failures, Babbage was the first true computer designer, and Ada was history's first programmer.
- George Boole invented a mathematical tool for future computer-builders--an "algebra of logic" that was used nearly a hundred years later to link the process of human reason to the operations of machines. The idea came to him in a flash of inspiration when he was walking across a meadow one day, at the age of seventeen, but it took him twenty years to teach himself enough mathematics to write The Laws of Thought.
Although Boole's lifework was to translate his inspiration into an algebraic system, he continued to be so impressed with the suddenness and force of the revelation that hit him that day in the meadow that he also wrote extensively about the powers of the unconscious mind. After his death Boole's widow turned these ideas into a kind of human potential cult, a hundred years before the "me decade."
- Alan Turing solved one of the most crucial mathematical problems of the modern era at the age of twenty-four, creating the theoretical basis for computation in the process. Then he became the top code-breaker in the world--when he wasn't bicycling around wearing a gas mask or running twenty miles with an alarm clock tied around his waist. If it hadn't been for the success of Turing's top-secret wartime mission, the Allies might have lost World War II. After the war, he created the field of artificial intelligence and laid down the foundations of the art and science of programming.
He was notoriously disheveled, socially withdrawn, sometimes loud and abrasive, and even his friends thought that he carried nonconformity to weird extremes. At the age of forty-two, he committed suicide, hounded cruelly by the same government he helped save.
- John von Neumann spoke five languages and knew dirty limericks in all of them. His colleagues, famous thinkers in their own right, all agreed that the operations of Johnny's mind were too deep and far too fast to be entirely human. He was one of history's most brilliant physicists, logicians, and mathematicians, as well as the software genius who invented the first electronic digital computer.
John von Neumann was the center of the group who created the "stored program" concept that made truly powerful computers possible, and he specified a template that is still used to design almost all computers--the "von Neumann architecture." When he died, the Secretaries of Defense, the Army, Air Force, and Navy and the Joint Chiefs of staff were all gathered around his bed, attentive to his last gasps of technical and policy advice.
- Norbert Wiener, raised to be a prodigy, graduated from Tufts at fourteen, earned his Ph.D. from Harvard at eighteen, and studied with Bertrand Russell at nineteen. Wiener had a different kind of personality than his contemporary and colleague, von Neumann. Although involved in the early years of computers, he eventually refused to take part in research that could lead to the construction of weapons. Scarcely less brilliant than von Neumann, Wiener was vain, sometimes paranoid, and not known to be the life of the party, but he made important connections between computers, living organisms, and the fundamental laws of the physical universe. He guarded his ideas and feuded with other scientists, writing unpublished novels about mathematicians who did him wrong.
Wiener's conception of cybernetics was partially derived from "pure" scientific work in mathematics, biology, and neurophysiology, and partially derived from the grimly applied science of designing automatic antiaircraft guns. Cybernetics was about the nature of control and communication systems in animals, humans, and machines.
- Claude Shannon, another lone-wolf genius, is still known to his neighbors in Cambridge, Massachusetts, for his skill at riding a motorcycle. In 1937, as a twenty-one-year-old graduate student, he showed that Boole's logical algebra was the perfect tool for analyzing the complex networks of switching circuits used in telephone systems and, later, in computers. During the war and afterward, Shannon established the mathematical foundation of information theory. Together with cybernetics, this collection of theorems about information and communication created a new way to understand people and machines--and established information as a cosmic fundamental, along with energy and matter.
Despite their outward diversity, the computer patriarchs of a hundred years ago and the cyberneticians if the World War II era appear to have shared at least one characteristic with each other and with software pioneers and infonauts of more recent vintage. In recent years, the public has become more aware of a subculture that sprouted in Cambridge and Palo Alto and quietly spread through a national network of fluorescent-lit campus computer centers for the past two decades--the mostly young, mostly male, often brilliant, sometimes bizarre "hackers," or self-confessed compulsive programmers. Sociologists and psychologists of the 1980s are only beginning to speculate about the deeper motivation for this obsession, but any later-day hacker will admit that the most fascinating thing in his own life is his own mind, and tell you that he regards intense, prolonged interaction with a computer program as a particularly satisfying kind of dialogue with his own thoughts.
A little touch of the hacker mentality seems to have affected all of the major players in this story. From what we know today about the patriarchs and pioneers, they all appear to have pursued a vision of a new way to use their minds. Each of them was trying to create a mental lever. Each of them contributed indispensable components of the device that was eventually assembled. But none of them encompassed it all.
The history of computation became increasingly complex as it progressed from the patriarchs to the pioneers. At the beginning, many of the earliest computer scientists didn't know that their ideas would end up in a kind of machine. Almost all of them worked in isolation. Because of their isolation from one another, the common intellectual ancestors of the modern computer are relatively easy to discern in retrospect. But since the 1950s, with the proliferation of researchers and teams of researchers in academic, industrial, and military institutions, the branches of the history have become tangled and too numerous to describe exhaustively. Since the 1950s, it has become increasingly difficult to assign credit for computer breakthroughs to individual inventors.
Although individual contributors to the past two or three decades of computer research development have been abundant, the people who have been able to see some kind of overall direction to the fast, fragmented progress of recent years have been sparse. Just as the earliest logicians and mathematicians didn't know their thoughts would end up as a part of a machine, the vast majority of the engineers and programmers of the 1960s were unaware that their machines had anything to do with human thought. The latter day computer pioneers in the middle chapters of this book were among the few who played central roles in the development of personal computing. Like their predecessors, these people tried to create a kind of mental lever. Unlike most of their predecessors, they were also trying to design a tool that the entire population might use.
Where the original software patriarchs solved various problems in the creation of the first computers, the personal computer pioneers struggled with equally vexing problems involved in using computers to create leverage for human intellect, the way wheels and dynamos create leverage for human muscles. Where the patriarchs were out to create computation, the pioneers sought to transform it:
Licklider, Engelbart, Taylor, and Kay are still at work, confident that many more of us will experience the same thrill that has kept them going all these years--what Licklider, still at MIT, calls the "religious conversion" to interactive computing. Engelbart works for Tymshare Corporation, marketing his "Augment" system to information workers. Taylor is setting up another computer systems research center, this time under the auspices of the Digital Equipment Corporation, and is collecting people once again, this time for a research effort that will bring computing into the twenty-first century. Kay, at Atari, continued to steer toward the fantasy amplifier, despite the fact that their mother company was often described in the news media as "seriously troubled." It is fair to assume that he will continue to work toward the same goal in his new association with Steve Jobs, chairman of Apple and a computer visionary of a more entrepreneurial bent.
- J.C.R. Licklider, an experimental psychologist at MIT who became the director of the Information Processing Techniques Office of the U.S. Defense Department's Advanced Research Projects Agency (ARPA), was the one man whose vision enabled hundreds of other like-minded computer designers to pursue a whole new direction in hardware and software development. In the early 1960s, the researchers funded by Licklider's programs reconstructed computer science on a new and higher level, through an approach known as time-sharing.
Although their sponsorship was military, the people Licklider hired or supported were working toward a transformation that he and they believed to be social as well as technological. Licklider saw the new breed of interactive computers his project directors were creating as the first step toward an entirely new kind of human communication capability.
- Doug Engelbart started thinking about building a thought-amplifying device back when Harry Truman was President, and he has spent the last thirty years stubbornly pursuing his original vision of building a system for augmenting human intellect. At one point in the late 1960s, Engelbart and his crew of infonauts demonstrated to the assembled cream of computer scientists and engineers how the devices most people then used for performing calculations or keeping track of statistics could be used to enhance the most creative human activities.
His former students have gone on to form a disproportionate part of the upper echelons of today's personal computer designers. Partially because of the myopia of his contemporaries, and partially because of his almost obsessive insistence on maintaining the purity of his original vision, most of Engelbart's innovations have yet to be adapted by the computer orthodoxy.
- Robert Taylor, at the age of thirty-three, became the director of the ARPA office created by Licklider, thus launching his career in a new and much-needed field--the shaping of large-scale, long term, human-computer research campaigns. He became a "people collector," looking for those computer researchers whose ideas might have been ignored by the orthodoxy, but whose projects promised to boost the state of computer systems by orders of magnitude.
- Alan Kay was one of television's original quiz kids. He learned to read at the age of two and a half, barely managed to avoid being thrown out of school and the Air Force, and ended up as a graduate student at one of the most important centers of ARPA research. In the 1970s, Kay was one of the guiding software spirits of PARC's Alto project (the first true personal computer) and the chief architect of Smalltalk, a new kind of computer language. He started the 1980s as a director of Atari Corporation's long-term research effort, and in 1984 he left Atari to become a "research fellow" for Apple Corporation.
Along with his hard-won credentials as one of the rare original thinkers who is able to implement his thoughts via the craft of software design, Kay also has a reputation as a lifelong insubordinate. Since the first time he was thrown out of a classroom for knowing more than the teacher, Kay's avowed goal has been to build a "fantasy amplifier" that anyone with an imagination could use to explore the world of knowledge on their own, a "dynamic medium for creative thought" that could be as useful and thought-provocative to children in kindergarten as it would be to scientists in a research laboratory.
The pioneers, although they are still at work, are not the final characters in the story of the computer quest. The next generations of innovators are already at work, and some of them are surprisingly young. Computer trailblazers in the past tended to make their marks early in life--a trend that seems to be continuing in the present. Kay, the former quiz kid, is now in his early forties. Taylor is in his early fifties, Engelbart in his late fifties, and Licklider in his sixties. Today, younger men and, increasingly, younger women, have begun to take over the field professionally, while even younger generations are now living in their own versions of the future for fun, profit, and thrills.
The ones I call the "infonauts" are the older brothers and sisters of the adolescent hackers you read about in the papers. Most of them are in their twenties and thirties. They work for themselves or for some research institution or software house, and represent the first members of the McLuhan generation to use the technology invented by the von Neumann generation as tools to extend their imagination. From the science of designing what they call the "user interface"--where mind meets machine--to the art of building educational microworlds, the infonauts have been using their new medium to create the mass-media version we will use fifteen years from now.
Despite their differences in background and personality, the computer patriarchs, software pioneers, and the newest breed of infonauts seem to share a distant focus on a future that they are certain the rest of us will see as clearly as they do--as soon as they turn what they see in their mind's eye into something we can hold in our hands. What did they see? What will happen when their visions materialize in our homes? And what do contemporary visionaries see in store for us next?
- Avron Barr is a knowledge engineer who helps build the special computer programs known as expert systems that are apparently able to acquire knowledge from human experts and transfer it to other humans. These systems are now used experimentally to help physicians diagnose diseases, as well as commercially to help geologists locate mineral deposits and to aid chemists in identifying new compounds.
Although philosophers debate whether such programs truly "understand" what they are doing, and psychologists point out the huge gap between the narrowly defined kind of expertise involved in geology or diagnosis and the much more general "world knowledge" that all humans have, there is no denying that expert systems are valuable commodities. Avron Barr believes that they will evolve into more than expensive encyclopedias for specialists. In his mid-thirties and just starting his career in an infant technology, he dreams of creating an expert assistant in the art of helping people agree with one another.
- Brenda Laurel, also in her mid-thirties, is an artist whose medium exists at the boundary of Kay's and Barr's and Engelbart's specialties. Her goal is to design new methods of play, learning, and artistic expression into computer-based technologies. Like Barr, she believes that the applications of her research point toward more extensive social effects than just another success in the software market.
Brenda wants to use an expert system that knows what playwrights, composers, librarians, animators, artists, and dramatic critics know, to create a world of sights and sounds in which people can learn about flying a spaceship or surviving in the desert or being a blue whale by experiencing space-desert-whale simulated microworlds in person.
- Ted Nelson is a dropout, gadfly, and self-proclaimed genius who self-published Computer Lib, the best-selling underground manifesto of the microcomputer revolution. His dream of a new kind of publishing medium and continuously updated world-library threatens to become the world's longest software project. He's wild and woolly, imaginative and hyperactive, has problems holding jobs and getting along with colleagues, and was the secret inspiration to all those sub-teenage kids who lashed together homebrew computers or homemade programs a few years back and are now the ruling moguls of the microcomputer industry.
Time will tell whether he is a prophet too far ahead of his time, or just a persistent crackpot, but there is no doubt that he has contributed a rare touch of humor to the often too-serious world of computing. How can you not love somebody who says "they should have called it an oogabooga box instead of a computer"?
| |
read on to Chapter Two: The First Programmer Was a Lady |
|
|
howard rheingold's brainstorms
©1985 howard rheingold, all rights reserved worldwide. |
Chapter One: The Computer Revolution Hasn't Happened Yet
![]()
Tools for Thought by Howard Rheingold
April, 2000: a revised edition of Tools for Thought is available from MIT Press, including a revised chapter with 1999 interviews of Doug Engelbart, Bob Taylor, Alan Kay, Brenda Laurel, and Avron Barr.The idea that people could use computers to amplify thought and communication, as tools for intellectual work and social activity, was not an invention of the mainstream computer industry or orthodox computer science, nor even homebrew computerists; their work was rooted in older, equally eccentric, equally visionary, work. You can't really guess where mind-amplifying technology is going unless you understand where it came from.
- HLR
Chapter Two:
The First Programmer Was a LadyOver a hundred years before a monstrous array of vacuum tubes surged into history in an overheated room in Pennsylvania, a properly attired Victorian Gentleman demonstrated an elegant little mechanism of wood and brass in a London drawing room. One of the ladies attending this demonstration brought along the daughter of a friend. She was a teenager with long dark hair, a talent for mathematics, and a weakness for wagering on horse races. When she took a close look at the device and realized what this older gentleman was trying to do, she surprised them all by joining him in an enterprise that might have altered history, had they succeeded.
Charles Babbage and his accomplice, Lady Lovelace, came very close to inventing the computer more than a century before American engineers produced ENIAC. The story of the "Analytical Engine" is a tale of two extraordinarily gifted and ill-fated British eccentrics whose biographies might have been fabrications of Babbage's friend Charles Dickens, if Dickens had been a science-fiction writer. Like many contemporary software characters, these computer pioneers of the Victorian age attracted as much attention with their unorthodox personal lives as they did with their inventions.George BooleOne of Babbage's biographies is entitled Irascible Genius.. He was indeed a genius, to judge by what he planned to achieve as well as what he did achieve. His irascibility was notorious. Babbage was thoroughly British, stubbornly eccentric, tenaciously visionary, sometimes scatterbrained, and quite wealthy until he sank his fortune into his dream of building a calculating engine.
Babbage invented the cowcatcher--that metal device on the front of steam locomotives that sweeps errant cattle out of the way. He also devised a means of analyzing entire industries, a method for studying complex systems that became the foundation of the field of operational research a hundred years later. When he applied his new method of analysis to a study of the printing trade, his publishers were so offended that they refused to accept any more of his books.
Undaunted, he applied his new method to the analysis of the postal system of his day, and proved that the cost of accepting and assigning a value to every piece of mail according to the distance it had to travel was far more expensive than the cost of transporting it. The British Post Office boosted its capabilities instantly and economically by charging a flat rate, independent of the distance each piece had to travel--the "penny post" that persists around the world to this day.
Babbage devised the first speedometer for railroads, and he published the first comprehensive treatise on actuarial theory (thus helping to create the insurance industry). He invented and solved ciphers and made skeleton keys for "unpickable locks"--an interest in cryptanalysis that he shared with later computer builders. He was the first to propose that the weather of past years could be discovered by observing cycles of tree rings. And he was passionate about more than a few crackpot ideas that history has since proved to be nothing more than crackpot ideas.
His human relationships were as erratic as his intellectual adventures, to judge from the number of lifelong public feuds Babbage was known to have engaged in. Along with his running battles with the Royal Societies, Babbage carried on a long polemic against organ-grinders and street musicians. Babbage would write letters to editors about street noise, and half the organ-grinders in London took to serenading under Babbage's window when they were in their cups. One biographer, B. V. Bowden, noted that "It was the tragedy of the man that, although his imagination and vision were unbounded, his judgment by no means matched them, and his impatience made him intolerant of those who failed to sympathize with his projects."
Babbage dabbled in half a dozen sciences and traveled with a portable laboratory. He was also a supreme nit-picker, sharp-eyed and cranky, known to write outraged letters to publishers of mathematical tables, upbraiding them for obscure inaccuracies he had uncovered in the pursuit of his own calculations. A mistake in navigational table, after all, was a matter of life and death for a seafarer. And a mistake in a table of logarithms could seriously impede the work of a great mind such as his own.
His nit-picking indirectly led Babbage to invent the ancestor of today's computers. As a mathematician and astronomer of no small repute, he resented the time he had to spend poring over logarithm tables, culling all the errors he knew were being perpetuated upon him by "elderly Cornish Clergymen, who lived on seven figure logarithms, did all their work by hand, and were only too apt to make mistakes."
Babbage left a cranky memoir entitled Passages from the Life of a Philosopher--a work described by computer pioneer Herman Goldstine as "a set of papers ranging from the sublime to the ridiculous, from profundities to nonsense in plain bad taste. Indeed much of Babbage's career is of this sort. It is a wonder that he had as many good and loyal friends when his behavior was so peculiar."
In Passages, Babbage noted this about the original inspiration for his computing machines:
The earliest idea that I can trace in my own mind of calculating arithmetical tables by machinery rose in this manner: One evening I was sitting in the rooms of the Analytical society at Cambridge, my head leaning forward on the table in a kind of dreamy mood, with a Table of logarithms lying open before me. Another member, coming into the room, and seeing me half asleep, called out, "Well, Babbage, what are you dreaming about?" To which I replied, "I am thinking that all these Tables (pointing to the logarithms) might be calculated by machinery."
In 1822, Babbage triumphantly demonstrated at the Royal Astronomical Society a small working model of a machine, consisting of cogs and wheels and shafts. The device was capable of performing polynomial equations by calculating successive differences between sets of numbers. He was awarded the society's first gold medal for the paper that accompanied the presentation.
In that paper, Babbage described his plans for a much more ambitious "Difference Engine." In 1823, the British government awarded him the first of many grants that were to continue sporadically and controversially for years to come. Babbage hired a master machinist, set up shop on his estate, and began to learn at first hand how far ahead of his epoch's technological capabilities his dreams were running.
The Difference Engine commissioned by the British government was quite a bit larger and more complex than the model demonstrated before the Royal Astronomical Society. But the toolmaking art of the time was not yet up to the level of precision demanded by Babbage's design. Work continued for years, unsuccessfully. The triumphal demonstration at the beginning of his enterprise looked as if it had been the high point of Babbage's career, followed by stubborn and prolonged decline. The British government finally gave up financing the scheme.
Babbage, never one to shy away from conflict with unbelievers over one of his cherished ideas, feuded over the Difference Engine with the government and with his contemporaries, many of whom began to make sport of mad old Charley Babbage. While he was struggling to prove them all wrong, he conceived an idea for an even more ambitious invention. Babbage, already ridiculously deep in one visionary development project, began to dream up another one. In 1833 he came up with something far more complex than the device he had failed to build in years of expensive effort.
If one could construct a machine for performing one kind of calculation, Babbage reasoned, would it be possible to construct a machine capable of performing any kind of calculation? Instead of building many small machines to perform different kinds of calculation, would it be possible to make the parts of one large machine perform different tasks at different times, by changing the order in which the parts interact?
Babbage had stumbled upon the idea of a universal calculating machine, an idea that was to have momentous consequences when Alan Turing--another brilliant, eccentric British mathematician who was tragically ahead of his time--considered it again in the 1930s. Babbage called his hypothetical master calculator the "Analytical Engine." The same internal parts were to be made to perform different calculations, through the use of different "patterns of action" to reconfigure the order in which the parts were to move for each calculation. A detailed plan was made, and redrawn, and redrawn once again.
The central unit was the "mill," a calculating engine capable of adding numbers to an accuracy of 50 decimal places, with speed and reliability guaranteed to lay the Cornish clergymen calculators to rest. Up to one thousand different 50-digit numbers could be stored for later reference in the memory unit Babbage called the "store." To display the result, Babbage designed the first automated typesetter.
Numbers could be put into the store from the mill or from the punched-card input system Babbage adapted from French weaving machines. In addition, cards could be used to enter numbers into the mill and specify the calculations to be performed on the numbers as well. By using the cards properly, the mill could be instructed to temporarily place the results in the store, then return the stored numbers to the mill for later procedures. The final component of the Analytical Engine was a card-reading device that was, in effect, a control and decision-making unit.
A working model was eventually built by Babbage's son. Babbage himself never lived to see the Analytical Engine. Toward the end of his life, a visitor found that Babbage had filled nearly all the rooms of his large house with abandoned models of his engine. As soon as it looked as if one means of constructing his device might actually work--Babbage thought of a new and better way of doing it.
The four subassemblies of the Analytical Engine functioned very much like analogous units in modern computing machinery. The mill was the analog of the central processing unit of a digital computer and the store was the memory device. Twentieth-century programmers would recognize the printer as a standard output device. It was the input device and the control unit, however, that made it possible to move beyond calculation toward true computation.
The input portion of the Analytical Engine was an important milestone in the history of programming. Babbage borrowed the idea of punched-card programming from the French inventor Jacquard, who had triggered a revolution on the textile industry by inventing a mechanical method of weaving patterns in cloth. The weaving machines used arrays of metal rods to automatically pull threads into position. To create patterns, Jacquard's device interposed a stiff card, with holes punched in it, between the rods and the threads. The card was designed to block some of the rods from reaching the thread on each pass; the holes in the card allowed only certain rods to carry threads into the loom. Each time the shuttle was thrown, a new card would appear in the path of the rods. Thus, once the directions for specific woven patterns were translated into patterns of holes punched into cards, and the cards were arranged in the proper order to present to the card reading device, the cloth patterns could be preprogrammed and the entire weaving process could be automated.
These cards struck Babbage as the key to automated calculation. Here was a tangible means of controlling those frustratingly abstract "patterns of action": Babbage put the step-by-step instructions for complicated calculations into a coded series of holes punched into the sets of cards that would change the way the mill worked at each step. Arrange the correctly coded cards in the right way, and you've replaced a platoon of elderly Cornish gentlemen. Change the cards, and you replace an entire army of them.
During his crusade to build the devices that he saw in his mind's eye but was somehow never able to materialize in wood and brass, Babbage met a woman who was to become his companion, colleague, conspirator, and defender. She saw immediately what Babbage intended to do with his Analytical Engine, and she helped him construct the software for it. Her work with Babbage and the essays she wrote about the possibilities of the engine established Augusta Ada Byron, Countess of Lovelace, as a patron saint if not a founding parent of the art and science of programming.
Ada's father was none other than Lord Byron, the most scandalous character of his day. His separation from Ada's mother was one of the most widely reported domestic episodes of the era, and Ada never saw her father after she was one month old. Byron wrote poignant passages about Ada in some of his poetry, and she asked to be buried next to him--probably to spite her mother, who outlived her. Ada's mother, portrayed by biographers as a vain and overbearing Victorian figure, thought a daily dose of a laudanum-laced "tonic" would be the perfect cure for her beautiful, outspoken daughter's nonconforming behavior, and thus forced an addiction on her!
Ada exhibited her mathematical talents early in life. One of her family's closest friends was Augustus De Morgan, the famous British Logician. She was well tutored, but always seemed to thirst for more knowledge than her tutors could provide. Ada actively sought the perfect mentor, whom she thought she found in a contemporary of her mother's--Charles Babbage.
Mrs. De Morgan was present at the historic occasion when the young Ada Byron was first shown a working model of the Difference Engine, during a demonstration Babbage held for Lady Byron's friends. In her memoirs, Mrs. De Morgan remembered the effect the contraption had on Augusta Ada: "While the rest of the party gazed at this beautiful invention with the same sort of expression and feeling that some savages are said to have shown on first seeing a looking glass or hearing a gun, Miss Byron, young as she was, understood its working and saw the great beauty of the invention."
Such parlor demonstrations of mechanical devices were in vogue among the British upper classes during the Industrial Revolution. While her elders tittered and gossiped and failed to understand the difference between this calculator and the various water pumps they had observed at other demonstrations, young Ada began to knowledgeably poke and probe various parts of the mechanism, thus becoming the first computer whiz kid.
Ada was one of the few to recognize that the Difference Engine was altogether a different sort of device than the mechanical calculators of the past. Whereas previous devices were analog (performing calculation by means of measurement), Babbage's was digital (performing calculation by means of counting). More importantly, Babbage's design combined arithmetic and logical functions. (Babbage eventually discovered the new work on the "algebra of Logic" by De Morgan's friend George Boole--but, by then, it was too late for Ada.)
Ada, who had been tutored by De Morgan, the foremost logician of his time, had ideas of her own about the possibilities of what one might do with such devices. Of Ada's gift for this new type of partially mathematical, partially logical exercise, Babbage himself noted: "She seems to understand it better than I do, and is far, far better at explaining it."
At the age of nineteen, Ada married Lord King, Baron of Lovelace. Her husband was also something of a mathematician, although his talents were far inferior to those of his wife. The young countess Lovelace continued her mathematical and computational partnership with Babbage, resolutely supporting what she knew to be a solid idea, at a time when less-foresighted members of the British establishment dismissed Babbage as a crank.
Babbage toured the Continent in 1840, lecturing on the subject of the device he never succeeded in building. In Italy, a certain Count Menabrea in Italy took extensive notes at one of the lectures and published them in Paris. Ada translated the notes from French to English and composed an addendum which was more than twice as long as the text she had translated. When Babbage read the material, he urged Ada to publish her notes in their entirety.
Lady Lovelace's published notes are still understandable today and are particularly meaningful to programmers, who can see how truly far ahead of their contemporaries were the Analytical Engineers. Professor B. H. Newman in the Mathematical Gazette has written that her observations "show her to have fully understood the principles of a programmed computer a century before its time."
Ada was especially intrigued by the mathematical implications of the punched pasteboard cards that were to be used to feed data and equations to Babbage's devices. Ada's Essay, entitled "Observations on Mr. Babbage's Analytical Engine," includes more than one prophetic passage, unheeded by most of her contemporaries, but which have grown in significance with the passage of a century:
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 extensive right hand of algebra, is the introduction into it of the principle which Jacquard devised for regulating, by means of punched cards, the most complicated patters in the fabrication of brocaded stuffs. It is in this that the distinction between the two engines lies. Nothing of the sort exists in the Difference Engine. We may say most aptly that the Analytical Engine weaves algebraical patterns just as the Jacquard loom weaves flowers and leaves. . . .
The bounds of arithmetic were, however, outstepped the moment the idea of applying cards had occurred; and the Analytical Engine does not occupy common ground with mere "calculating machines." It holds a position wholly its own; and the considerations it suggests are most interesting in their nature. In enabling mechanism to combine together general symbols, in successions of unlimited variety and extent, a uniting link is established between the operations of matter and the abstract mental processes of the most abstract branch of mathematical science. A new, a vast and a powerful language is developed for the future use of analysis, in which to wield its truths so that these may become of more speedy and accurate practical application for the purposes of mankind than the means hitherto in our possession have rendered possible. Thus not only the mental and the material, but the theoretical and the practical in the mathematical world, are brought into intimate connexion with each other. We are not aware of its being on record that anything partaking of the nature of what is so well designated the Analytical Engine has been hitherto proposed, or even thought of, as a practical possibility, any more than the idea of a thinking or a reasoning machine.
As a Mathematician, Ada was excited about the possibility of automating laborious calculations. But she was far more interested in the principles underlying the programming of these devices. Had she not died so young, it is possible that Ada could have advanced the nineteenth-century state of the art to the threshold of true computation.
Even thought the Engine was yet to be built, Ada experimented with writing sequences of instructions. She noted the value of several particular tricks in this new art, tricks that are still essential to modern computer languages--subroutines, loops and jumps. If your object is to weave a complex calculation out of subcalculations, some of which may be repeated many times, it is tedious to rewrite a sequence of a dozen or a hundred instructions over and over, Why not just store copies of often-used calculations, or subroutines, in a "library" of procedures for later use? Then your program can "call" for the subroutine from the library automatically, when your calculation requires it. Such libraries of subprocedures are now a part of virtually every high-level programming language.
Analytical Engines and digital computers are very good at doing things over and over many times, very quickly. By inventing an instruction that backs up the card-reading device to a specified previous card, so that the sequence of instructions can be executed a number of times, Ada created the loop--perhaps the most fundamental procedure in every contemporary programming language.
It was the conditional jump that brought Ada's gifts as a logician into play. She came up with yet another instruction for manipulating the card-reader, but instead of backing up and repeating a sequence of cards, this instruction enabled the card-reader to jump to another card in any part of the sequence, if a specific condition was satisfied. The addition of that little "if" to the formerly purely arithmetic list of operations meant that the program could do more than calculate. In a primitive but potentially meaningful way, the Engine could now make decisions.
She also noted that machines might someday be built with capabilities far beyond those possible with Victorian era technology, and speculated about the possibility of whether such machines could ever achieve intelligence. Her argument against artificial intelligence, set forth in her "Observations," was immortalized almost a century later by another software prophet, Alan Turing, who dubbed her line of argument "Lady Lovelace's Objection." It is an opinion that is still frequently heard in debates about machine intelligence: "The Analytical Engine," Ada wrote, "has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform."
It is not known how and when Ada became involved in her clandestine and disastrous gambling ventures. No evidence has ever been produced that Babbage had anything to do with introducing Ada to what was to be her lifelong secret vice. For a time, Lord Lovelace shared Ada's obsession, but after incurring significant losses he stopped. She continued, clandestinely.
Babbage became deeply involved in Ada's gambling toward the end of her life. For her part, Ada helped Babbage in more than one scheme to raise money to construct the Analytical Engine. It was a curious mixture of vice, high intellectual adventure, and bizarre entrepreneurship. They built a tic-tac-toe machine, but gave up on it as a moneymaking venture when an adviser assured them that P. T. Barnum's General Tom Thumb had sewn up the market for traveling novelties. Ironically, although Babbage's game-playing machines were commercial failures, his theoretical approach created a foundation for the future science of game theory, scooping even that twentieth-century genius John von Neumann by about a hundred years.
It was Charley and Ada's attempt to develop an infallible system for betting on the ponies that brought Ada to the sorry pass of twice pawning her husband's family jewels, without his knowledge, to pay off blackmailing bookies. At one point, Ada and Babbage--never one to turn down a crazy scheme--used the existing small scale working model of the Difference Engine to perform the calculations required by their complex handicapping scheme. The calculations were based on sound approaches to the theory of handicapping, but as the artificial intelligentsia were to learn over a century later, even the best modeling programs have trouble handling truly complex systems. They lost big. To make matters worse, when she compounded her losses Ada had to turn to her mother, who was not the most forgiving soul, to borrow the money to redeem the Lovelace jewels before her husband could learn of their absence.
Ada died of cancer at the age of thirty-six. Babbage outlived her by decades, but without Ada's advice, support, and sometimes stern guidance, he was not able to complete his long-dreamed-of Analytical Engine. Because the toolmaking art of his day was not up to the tolerance demanded by his designs, Babbage pioneered the use of diamond-tipped tools in precision-lathing. In order to systematize the production of components for his Engine, he devised methods to mass-manufacture interchangeable parts and wrote a classic treatise on what has since become known as "mass production."
Babbage wrote books of varying degrees of coherence, made breakthroughs in some sciences and failed in others, gave brilliant and renowned dinner parties with guests like Charles Darwin, and seems to have ended up totally embittered. Bowden noted that "Shortly before Babbage died he told a friend that he could not remember a single completely happy day in his life: 'He spoke as if he hated mankind in general, Englishmen in particular, and the English Government and Organ Grinders most of all.'"
While Ada Lovelace has been unofficially known to the inner circles of programmers since the 1950s, when card-punched batch-processing was not altogether different from Ada's kind of programming, she has been relatively unknown outside those circles until recently. In the 1970s, the U.S. Department of defense officially named its "superlanguage" after her.
Although it came too late to assist in the original design of the Analytical Engine, yet another discovery that was to later become essential to the construction of computers was made by a contemporary of Babbage and Lovelace. The creation of an algebra of symbolic logic was the work of another mathematical prodigy and British individualist, but one who worked and lived in a different world, far away from the parlors of upper-class London.A seventeen-year-old Englishman by the name of George Boole was struck by an astonishing revelation while walking across a meadow one day in 1832. The idea came so suddenly, and made such a deep impact on his life, that it led Boole to make pioneering if obscure speculations about a heretofore unsuspected human facility that he called "the unconscious." Boole's contribution to human knowledge was not to be in the field of psychology, however, but in a field of his own devising. As Bertrand Russell remarked seventy years later, Boole invented pure mathematics.
Although he had only recently begun to study mathematics, the teenage George Boole suddenly saw a way to capture some of the power of human reason in the form of an algebra. And Boole's equations actually worked when they were applied to logical problems. But there was a problem, and it wasn't in Boole's concept. The problem, at the time, was that nobody cared. Partly because he was from the wrong social class, and partly because most mathematicians of his time knew very little about logic, Boole's eventual articulation of this insight didn't cause much commotion when he published it. His revelation was largely ignored for generations after his death.
When the different parts of computer technology converged unexpectedly a hundred years later, electrical engineers needed mathematical tools to make sense of the complicated machinery they were inventing. The networks of switches they created were electrical circuits whose behavior could be described and predicted by precise equations. Because patterns of electrical pulses were now used to enclose logical operations like "and," "or," and the all important "if," as well as the calculator's usual fare of "plus," "minus," "multiply," and "divide," there arose a need for equations to describe the logical properties of computer circuits.
Ideally, the same set of mathematical tools would work for both electrical and logical operations. The problem of the late 1930s was that nobody knew of any mathematical operations that had the power to describe both logical and electrical networks. Then the right kind of mind looked in the right place. An exceptionably astute graduate student at MIT named Claude Shannon, who later invented information theory, found Boole's algebra to be exactly what the engineers were looking for.
Without Boole, a poverty-stricken, self-taught mathematics teacher who was born the same year as Ada, the critical link between logic and mathematics might never have been accomplished. While the Analytical Engine was an inspiring attempt, it had remarkably little effect on the later thinkers who created modern computers. Without Boolean algebra, however, however, computer technology might never have progressed to the electronic speeds where truly interesting computation becomes possible.
Boole was right about the importance of his vision, although he wouldn't have known what to do with a vacuum tube or a switching circuit if he saw one. Unlike Babbage, Boole was not an engineer. What Boole discovered in that meadow and worked out on paper two decades later was destined to become the mathematical linchpin that coupled the logical abstractions of software with the physical operations of electronic machines.
Between them, Babbage's and Boole's inspirations can be said to characterize the two different kinds of motivation that caused imaginatives over the centuries to try and eventually to succeed in building a computer. On the one side are scientists and engineers, who would always yearn for a device to take care of tedious computations for them, freeing their thoughts for the pursuit of more interesting questions. On the other side is the more abstract desire of the mathematical mind to capture the essence of human reason in a set of symbols.
Ada, who immediately understood Babbage's models when she saw them, and who was tutored by De Morgan, the one man in the world best equipped to understand Boole, was the first person to speculate at any length about the operations of machines capable of performing logical as well as numerical operations. Boole's work was not published until after Lady Lovelace died. Had Ada lived but a few years longer, her powerful intuitive grasp of the principles of programming would have been immeasurably enhanced by the use of Boolean algebra.
Babbage and Lovelace were British aristocrats during the height of the Empire. Despite the derision heaped on Babbage in some quarters for his often-peculiar public behavior, he counted the Duke of Wellington, Charles Dickens, and Prince Albert among his friends. Ada had access to the best tutors, the finest laboratory equipment, and the latest books. They were both granted the leisure to develop their ideas and the privilege of making fools of themselves of the Royal Society, if they desired.
Boole was the son of a petty shopkeeper, which wasn't the best route to a good scientific education. At the age of sixteen, his family's precarious financial situation obliged Boole to secure modest employment as a schoolteacher. Faced with the task of teaching his students something about mathematics, and by now thoroughly Lincolnesque in his self-educating skills, Boole set out to learn mathematics. He soon learned that it was the most cost-effective intellectual endeavor for a man of his means, requiring no laboratory equipment and a fairly small number of basic books. At seventeen he experienced the inspiration that was to result in his later work, but he had much to learn about both mathematics and logic before he was capable of presenting his discovery to the world.
At the age of twenty he discovered something that the greatest mathematicians of his time had missed--an algebraic theory of invariance that was to become an indispensable tool for Einstein when he formulated the theory of relativity. In 1849, after his long years as an elementary-school teacher, Boole's mathematical publications brought him an appointment as professor of mathematics at Queen's College, Cork, Ireland. Five years later, he published An investigation of the laws of thought, on which are founded the Mathematical Theories of Logic and Probabilities.
Formal logic had been around since the time of the Greeks, most widely known in the syllogistic form perfected by Aristotle, the simplified version of which most people learn no more than: "All men are mortal. Socrates is a man. Therefore Socrates is mortal." After thousands of years in the same form, Aristotelian logic seemed doomed to remain on the outer boundaries of the metaphysical, never to break through into the more concretely specified realm of the mathematical, because it was still just a matter of words. The next level of symbolic precision was missing.
For over a thousand years, the only logic-based system that was expressible in symbols rigorous and precise enough to be called "mathematical" had been the geometry set down by Euclid. Just as Euclid set down the basic statements and rules of geometry in axioms and theorems about spatial figures, Boole set down the basics of logic in algebraic symbols. This was no minor ambition. While knowledge of geometry is a widely useful tool for getting around the world, Boole was convinced that logic was the key to human reason itself. He knew that he had found what every metaphysician from Aristotle to Descartes had overlooked. In his first chapter, Boole wrote:
1. The design of the following treatise is to investigate the fundamental laws of those operations of the mind by which reasoning is performed; to give expression to them in the symbolic language of a Calculus, and upon this foundation to establish a science of Logic and construct its method . . . to collect from the various elements of truth brought to view in the course of these inquiries some probable imitations concerning the nature and constitution of the human mind. . . .
2. . . . To enable us to deduce correct inferences from given premises is not the only object of logic . . . these studies have also an interest of another kind, derived from the light which they shed on the intellectual powers. They instruct us concerning the mode in which language and number serve as instrumental aids to the process of reasoning; they reveal to some degree the connexion between different powers of our common intellect; they set before us . . . the essential standards of truth and correctness--standards not derived from without, but deeply founded in the constitution of the human faculties . . . To unfold the secret laws and relations of those high faculties of thought by which all beyond the merely perceptive knowledge of the world and of ourselves is attained or matured, is an object which does not stand in need of commendation to a rational mind.
Although his discovery had profound consequences in both pure mathematics and electrical engineering, the most important elements of Boole's algebra of logic were simple in principle. He used the algebra everybody learns in school as a starting point, made several small but significant exceptions to the standard rules of algebraic combination, and used his special version to precisely express the syllogisms of classical logic.
The concept Boole used to connect the two heretofore different thinking tools of logic and calculation was the idea of a mathematical system in which there were only two quantities, which he called "the Universe" and "Nothing" and denoted by the signs 1 and 0. Although he didn't know it at the time, Boole had invented a two-state system for quantifying logic that also happened to be a perfect method for analyzing the logic of two-state physical devices like electrical relays or vacuum tubes.
By using the symbols and operations specified, logical propositions could be reduced to equations, and the syllogistic conclusions could be computed according to ordinary algebraic rules. By applying purely mathematical operations, anyone who knew Boolean algebra could discover any conclusion that was logically contained in any set of specified premises.
Because syllogistic logic so closely resembles the thought processes of human reasoning, Boole was convinced that his algebra not only demonstrated a valid equivalence between mathematics and logic, but also represented a mathematical systemization of human thought. Since Boole's time, science has learned that the human instrument of reason is far more complicated, ambiguous, unpredictable, and powerful that the tools of formal logic. But mathematicians have found that Boole's mathematical logic is much more important to the foundation of their enterprise than they first suspected. And the inventors of the first computers learned that a simple system with only two values can weave very sophisticated computations indeed.
The construction of a theoretical bridge between mathematics and logic had been gloriously begun, but was far from completed by Boole's work. It remained for later minds to discover that although it is probably not true that the human mind resembles a machine, there is still great power to be gained by thinking about machines that resemble the operations of the mind.
Nineteenth-century technology simply wasn't precise enough, fast enough, or powerful enough for ideas like those of Babbage, Lovelace, and Boole to become practicalities. The basic science and the industrial capabilities needed for making several of the most important components of modern computers simply didn't exist. There were still important problems that would have to be solved by the inventors rather than the theorists.
The next important development in the history of computation, and the last important contribution of the nineteenth century, had nothing to do with calculating tables of logarithms or devising laws of thought. The next thinker to advance the state of the art was Herman Hollerith, a nineteen-year-old employee of the United States Census Office. His role would have no effect on the important theoretical foundations of computing. Ultimately, his invention became obsolete. But his small innovation eventually grew into the industry that later came to dominate the commercial use of computer technology.
Hollerith made the first important American contribution to the evolution of computation when his superior at the Census Office set him on a scheme for automating the collection and tabulation of data. On his superior's suggestion, he worked out a system that used cards with holes punched in them to feed information into an electrical counting system.
The 1890 census was the point in history where the processing of data as well as the calculation of mathematical equations became the object of automation. As it turned out, Hollerith was neither a mathematician nor a logician, but a data processor. He was grappling, not with numerical calculation, but with the complexity of collecting, sorting, storing, and retrieving a large number of small items in a collection of information. Hollerith and his colleagues were unwitting forerunners of twentieth-century information workers, because their task had to do with finding a mechanical method to keep track of what their organization knew.
Hollerith was introduced to the task by his superior, John Shaw Billings, who had been worrying about the rising tide of information since 1870, when he was hired by the Census Office to develop new ways to handle large amounts of information. Since he was in charge of the collection and tabulation of data for the 1880 and 1890 census, Billings was acutely aware that the growing population of the nation was straining the ability of the government to conduct the constitutionally mandated survey every ten years. In the foreseeable future, the flood of information to be counted and sorted would take fifteen or twenty years to tabulate!
Like the stories about the origins of other components of computers, there is some controversy about the exact accreditation for the invention of the punched-card system. One account by a man named Willcox, who worked with both Billings and Hollerith in the census office stated:
While the returns of the Tenth (1881) Census were being tabulated at Washington, Billings was walking with a companion through the office in which hundreds of clerks were engaged in laboriously transferring items of information from the schedules to the record sheets by the slow and heartbreaking method of hand tallying. As they were watching the clerks he said to his companion, 'There ought to be some mechanical way of doing this job, on the principle of the Jacquard loom, whereby holes in a card can regulate the pattern to be woven.' The seed fell on good ground. His companion was a talented young engineer in the office who first convinced himself that the idea was practicable and then that Billings had no desire to claim or use it.
The "talented young engineer," of course, was Hollerith, who wrote this version in 1919:
One Sunday evening at Dr. Billings' tea table, he had said to me that there ought to be a machine for doing the purely mechanical work of tabulating population and similar statistics. We talked the matter over and I remember . . . he thought of using cards with the description of the individual shown by notches punched in the edge of the card. . . .After studying the problem I went back to Dr. Billings and said that I thought I could work out a solution for the problem and asked him if he would go in with me. The Doctor said that he was not interested any further than to see some solution of the problem worked out.
The system Hollerith put together used holes punched in designated locations on cardboard cards to represent the demographic characteristics of each person interviewed. Like Jacquard's and Babbage's cards, and the "player pianos" then in vogue, the holes in Hollerith's cards were meant to allow the passage of mechanical components. Hollerith used an electromechanical counter in which copper brushes closed certain electrical circuits if a hole was encountered, and did not close a circuit if a hole was not present.
An electrically activated mechanism increased the running count in each category by one unit every time the circuit for that category was closed. By adding sorting devices that distributed cards into various bins, according to the patterns of holes and the kind of tabulation desired, Hollerith not only created the ability to keep up with large amounts of data, but created the ability to ask new and more complicated questions about the data. The new system was in place in time for the 1890 census.
Hollerith obtained a patent on the system that he had invented just in time to save the nation from drowning in its own statistics. In 1882-83, he was an instructor in mechanical engineering at the Massachusetts Institute of Technology, establishing the earliest link between that institution and the development of computer science and technology. In 1896, Hollerith set up the "Tabulating Machine Company" to manufacture both the cards and the card-reading machines. In 1900, Hollerith rented his equipment to the Census Bureau for the Twelfth Census.
Some years later, Hollerith's Tabulating Machine had become an institution known as "International Business Machines," run by a fellow named Thomas Watson, Senior. But there were two World Wars ahead, and several more thinkers--the most extraordinary of them all--still to come before a manufacturer of tabulating machines and punch cards would have anything to do with true computers. The modern-day concerns of this company--selling machines to keep track of the information that goes along with doing business--would have to wait for some deadly serious business to be transacted.
The War Department, not the Census Office or a business machine company, was the mother of the digital computer, and the midwives were many--from Alan Turing's British team who needed a special kind of computing device to crack the German code, to John von Neumann's mathematicians at Los Alamos who were faced with the almost insurmountable calculations involved in making the atomic bomb, to Norbert Weiner's researchers who were inventing better and faster ways to aim antiaircraft fire, to the project of the Army Ballistic Research Laboratory that produced the Electronic Numerical Integrator and Calculator (ENIAC).
It would be foolish to speculate about what computers might become in the near future without realizing where they originated in the recent past. The historical record is clear and indisputable on this point: ballistics begat cybernetics. ENIAC, the first electronic digital computer, was originally built in order to calculate ballistic firing tables. When ENIAC's inventors later designed the first miniature computer, it was the BINAC, a device small enough to fit in the nose cone of an ICBM and smart enough to navigate by the position of the stars.
Although the first electronic digital computer was constructed in order to produce more accurate weapons, the technology would not have been possible without at least one important theoretical breakthrough that had nothing to do with ballistics or bombs. The theoretical origins of computation are to be found, not in the search for more efficient weaponry, but in the quest for more powerful and elegant symbol systems.
The first modern computer was not a machine. It wasn't even a blueprint. The digital computer was conceived as a symbol system--the first automatic symbol system --not as a tool or a weapon. And the person who invented it was not concerned with ballistics or calculation, but with the nature of thought and the nature of machines.
| |
read on to Chapter Three: The First Hacker and his Imaginary Machine |
|
|
howard rheingold's brainstorms
©1985 howard rheingold, all rights reserved worldwide. |
![]()
Tools for Thought by Howard Rheingold
April, 2000: a revised edition of Tools for Thought is available from MIT Press, including a revised chapter with 1999 interviews of Doug Engelbart, Bob Taylor, Alan Kay, Brenda Laurel, and Avron Barr.The idea that people could use computers to amplify thought and communication, as tools for intellectual work and social activity, was not an invention of the mainstream computer industry or orthodox computer science, nor even homebrew computerists; their work was rooted in older, equally eccentric, equally visionary, work. You can't really guess where mind-amplifying technology is going unless you understand where it came from.
- HLR
Chapter Three:
The First Hacker and His Imaginary MachineThroughout the winter of 1936, a young Cambridge don put the finishing touches on a highly technical paper about mathematical logic that he didn't expect more than a dozen people around the world to understand. It was an unusual presentation, not entirely orthodox by the rather rigid standards of his colleagues. The young man wasn't entirely orthodox, himself. Although his speech revealed his upper-middle class origins, his manner of dress, his erratic grooming, and his grating voice put off most of his peers. An outsider to the loftier academic-social circles of the university, he had few friends, preferring to spend his time at mathematics, chemistry experiments, chess puzzles, and long runs in the countryside.
Computation, when it was finally invented, a century after Babbage, did not come in the form of some new gadget in an inventor's workshop or a scientist's laboratory. The very possibility of building digital computers was given to the world in the form of an esoteric paper in a mathematics journal in 1936. Nobody realized at the time that this peculiar discovery in the obscure field of metamathematics would eventually lead to a world-changing technology, although the young author, Alan Mathison Turing, knew he was on the track of machines that could simulate the human thought processes.That mathematics paper was a pivotal point in the cultural history of Western civilization. The first move in the intellectual game that resulted in digital computers was also the last move in another game that had gone on for millennia. In Egypt and Babylonia, where systems for measuring land and forecasting the course of the stars originated, only the priests and their chosen craftsmen were privileged to know the esoteric arts of reckoning. During the flowering of Greek civilization into the fifth and sixth centuries B.C., these protosciences were shaped into the mental tools known as axiomatic systems.
In an axiomatic system you start with premises that are known to be true, and rules that are known to be valid, in order to produce new statements that are guaranteed to be true. Conclusions can be reached by manipulating symbols according to sets of rules. Euclidean geometry is the classic example of the kind of generally useful tools made possible by formal axiomatic systems.
An axiomatic system is a tool for augmenting human thought. Except for rare "lightning" calculators, people are not able to add two six-figure numbers in their head. Give virtually all people over the age of ten a piece of paper and a pencil, however, and they'll tell you the answer in less than a minute. The magic ingredient that makes a schoolchild into a calculating machine is the kind of step-by-step recipe for performing a calculation that is known as an algorithm. The reason we know such algorithms work is because they are based on the formal system known as arithmetic, which we know to be true.
What Turing's paper did, and what made digital computers possible, resulted in the millennia-long effort to reduce the various formal systems to one basic system that underlies them all. Science--our civilization's preeminent system for gathering and validating knowledge--was built on mathematics, which was in turn a logical formalization of the primitive number theories of the Babylonians and the Greeks. Computation was the unexpected result of the attempt to prove that the mathematical truths could be reduced to logical truths.
At the same time that our civilization's methods for predicting and understanding the universe grew powerful as the result of these intellectual systems (i.e., science, mathematics, and logic), a few people continued to ask whether these same systems could be reduced to their basic components. If all sciences, when they become advanced enough, can be reduced to mathematical equations, is it possible to reduce mathematics to the most fundamental level of logic?
Since our certainty in the completeness and consistency of our knowledge system could depend on whether such a reduction was possible, it was very disconcerting to Western thinkers when evidence began to appear that there were exceptions, anomalies, paradoxes--holes in the structure of mathematics that might prevent any such grand reduction of formal systems. Those two intellectual quests--the effort to reduce mathematics to a fundamental, formal symbol system, and the attempt to patch up the paradoxes that cropped up during the pursuit of that grand reduction--led directly but unexpectedly to computation.
In the first decades of the twentieth century, mathematicians and logicians were trying to formalize mathematics. David Hilbert and John von Neumann set down the rules of formalism in the 1920s (as we shall see in the next chapter). Before Hilbert and von Neumann, Alfred North Whitehead and Bertrand Russell demonstrated in their Principia Mathematica that some aspects of human reasoning could be formally described, thus linking this awakened interest in mathematical logic to the ideas of the long-forgotten originator of the field, George Boole. The idea of formal systems was of particular interest, because it appeared to bridge the abstractions of mathematics and the mysteries of human thought.
A formal system is a rigidly defined kind of game that specifies rules for manipulating tokens. The qualifications for making a formal system are very much like the rules for any other game. To tell someone how to play a game, and for the set of rules to qualify as a formal system, the same three aspects of the game must be communicated -- the nature of the tokens, a description of the starting position (or the starting layout of the "board"), and a listing of what moves are allowed in any given position. Chess checkers, mathematics, and logic are examples of formal systems that satisfy these criteria. By the 1930s, the effort to reduce mathematics to logically secure foundations brought about several attempts to treat arithmetic -- the branch of mathematics concerned with operations on numbers -- as a formal system.
In 1936, at the age of twenty-four, Alan M. Turing established himself as one of the greatest mathematical prodigies of all time when he pointed out to his colleagues that it was possible to perform computations in number theory by means of a machine -- a machine that embodied the rules of a formal system. Although the machine itself didn't exist as a working model, Turing emphasized from the beginning that such machines could actually be built. His finding was a milestone in the effort to formalize mathematics and, at the same time, a watershed in the history of computation.
In his brilliant solution to one of the key metamathematical problems posed by the formalists, Alan Turing described in precise mathematical terms how an automatic formal system with extremely simple rules of operation could have very powerful capabilities. An automatic formal system is a physical device which automatically manipulates the tokens of a formal system according to the system's rules. Turing's theoretical machine was both an example of his theory of computation and a proof that a certain kind of computing machine could, in fact, be constructed.
When he brought mathematics and logic together in the form of a machine, Turing made symbol-processing systems possible. He proposed that the vast majority of intellectual problems could be converted to the form "find a number n such that . . . " Even more important than this provocative statement connecting the abstractions of intellect with the more concrete realm of numbers -- an implication that still inspires the efforts of artificial intelligence researchers -- was Turing's recognition that the numbers were more important as symbols in this case than as elements of mathematical calculations.
One of Turing's greatest insights was his understanding, from the very beginning, of something that the majority of the computer priesthood has yet to understand -- the fact that numbers are only one possible way of interpreting the internal states of an automatic formal system. Babbage's "patterns of action" were now formalized with mathematical rigor. Turing's "states" provided the crucial metaphor for bridging the power of human cognition and the capabilities of machines.
What, Turing asked, does a human symbol processor do when performing a calculation? He decided that mental calculations consist of operations for transforming the input numbers into a series of intermediate states which progress from one to the next according to a fixed set of rules, until an answer is found. Sometimes, people use pencil and paper to keep track of the states of their calculations. The rules of mathematics require more rigid definitions than those provided by the fussily described human states of mind discussed by metaphysicians, so Turing concentrated on defining these states in a way that was so clear and unambiguous that the description could be used to command the operations of a machine.
Turing started with a precise description of a formal system, in the form of "instruction tables" describing which moves to make for every possible configuration of states in the system. He then proved that the description of these instructions, the steps of formal axiomatic system like logic, and the machine states that make up the "moves" in an automatic formal system are all equivalent to one another. Such matters as formal systems and Turing machines sound very far away from what computers actually do, but in fact they underlie the entire technology of digital computers -- which wasn't to come into existence until over a decade after Alan Turing published his epochal paper.
The process of computation was graphically depicted in Turing's paper when he asked the reader to consider a device that can read and write simple symbols on a paper tape that is divided into squares. The "reading/writing head" can move in either direction along the tape, one square at a time, and a control unit that directs the actions of the head can interpret simple instructions about reading and writing symbols in squares. The single square that is "scanned" or "read" at each stage is known as the active square. Imagine that new sections can be added at either end of the existing tape, so it is potentially infinite.
Suppose the symbols are "X" and "O". Suppose that the device can erase either symbol when it reads it in the active square and replace it with the other symbol (i.e., erase an X and replace it with an O, and vice versa). The device also has the ability to move left or right, one square at a time, according to instructions interpreted by the control unit. The instructions cause a symbol to be erased, written, or left the same, depending on which symbol is read.
Any number of games can be constructed using these rules, but they would not all necessarily be meaningful. One of the first things Turing demonstrated was that some of the games constructed under these rules can be very sophisticated, considering how crude and automaton-like the primitive operations seem to be. The following example illustrates how this game can be used to perform a simple calculation.
The rules of the game to be played by this Turing machine are simple: Given a starting position in the form of a section of tape with some Xs and Os on it, and a starting square indicated, the device is to perform the actions dictated by a list of instructions and follows the succeeding instructions one at a time until it reaches an instruction that forces it to stop. (If there is no explicit instruction in the table of instructions for a particular tape configuration, there is nothing that the machine can do when it reaches that configuration, so it has to stop.)
Each instruction specifies a particular action to be performed if there is a certain symbol on the active square at the time it is read. There are four different actions; they are the only legal moves of this game. They are:
Replace O with X.
Replace X with O.
Go one square to the right.
Go one square to the left.
An example of an instruction is: "If there is an X on the active square replace it with O." This instruction causes the machine to perform the second action listed above. In order to create a "game," we need to make a list that specifies the number of the instruction that is being followed at every step as well as the number of the instruction that is to be followed next. That is like saying "The machine is now following (for example) instruction seven, and the instruction to be followed next is (for example) instruction eight."
Here is a series of instructions, given in coded form and the more English-like translation. Taken together, these instructions constitute an "instruction table" or a "program" that tells a Turing machine how to play a certain kind off game:
1X02 (Instruction #1: if an X is on the active square, replace it with O, then execute instruction #2.) 2OR3 (Instruction #2: if an O is on the active square, go right one square and then execute instruction #3.) 3XR3 (Instruction #3: if an X is on the active square, go right one square and then execute instruction #3; 3OR4 but if an O is on the active square, go right one square and then execute instruction #4.) 4XR4 (Instruction #4: if an X is on the active square, go right one square and then execute instruction #4; 4OX5 but if an O is on the active square, replace it with X and then execute instruction #5.) 5XR5 (Instruction #5: if an X is on the active square, go right one square and then execute instruction #5; 5OX6 but if an O is on the active square, replace it with X and then execute instruction #6.) 6XL6 (Instruction #6: if an X is on the active square, go left one square and then execute instruction #6 6OL7 but if an O is on the active square, go left one square and then execute instruction #7.) 7XL8 (Instruction #7: if an X is on the active square, go left one square and then execute instruction #8.) 8XL8 (Instruction #8: if an X is on the active square, go left one square and then execute instruction #8; 8OR1 but if an O is on the active square, go right one square and then execute instruction #1.) Note that if there is an O on the active square in instruction #1 or #7, or if there is an X on the active square in instruction #2, the machine will stop.
In order to play the game (run the program) specified by the list of instructions, one more thing must be provided: a starting tape configuration. For our example, let us consider a tape with two Xs on it, bounded on both sides by an infinite string of Os. The changing states of a single tape are depicted here as a series of tape segments, one above the other. The active square for each denoted by a capital X or O. When the machine is started it will try to execute the first available instruction, instruction #1. The following series of actions will then occur:
Instruction Tape What the Machine Does #1 ...ooXxooooooo... One (of two) Xs is erased. #2 ...ooOxooooooo... #3 ...oooXooooooo... Tape is scanned to the #3 ...oooxOoooooo... right. #4 ...oooxoOooooo... #5 ...oooxoXooooo... Two Xs are written. #5 ...oooxoxOoooo... #6 ...oooxoxXoooo... #6 ...oooxoXxoooo... Scanner returns to the #6 ...oooxOxxoooo... other original X. #7 ...oooXoXXoooo... #8 ...ooOxoxxoooo... #1 ...oooXoxxoooo... #2 ...oooOoxxoooo... This X is erased. #3 ...ooooOxxoooo... Scanner moves to the right #4 ...oooooXxoooo... of the two Xs that were #4 ...oooooxXoooo... written earlier. #4 ...oooooxxOooo... #5 ...oooooxxXooo... Two more Xs are written. #5 ...oooooxxxOoo... #6 ...oooooxxxXoo... #6 ...oooooxxXxoo... Scanner looks for any more #6 ...oooooxXxxoo... original Xs. #6 ...oooooXxxxoo... #6 ...ooooOxxxxoo... #7 ...oooOoxxxxoo... The machine stops because there is no instruction for #7 if O is being scanned. This game may seem rather mechanical. The fact that it is mechanical was one of the points Turing was trying to make. If you look at the starting position, note that there are two adjacent Xs. Then look at the final position and note that there are four Xs. If you were to use the same instructions, but start with a tape that had five Xs, you would wind up with ten Xs. This list of instructions in the specification for a calculating procedure that will double the input and display the output. It can, in fact, be done by a machine.
In essence, every Turing machine moves marks from one position on a tape to another position on a tape, in the way the procedure outlined above moved Xs and Os from square to square. These days, the marks can be electronic impulses in microcircuits, and the tape can be an array of memory locations in a memory chip, but the essential idea is the same. Turing proved that his hypothetical machine is an automated version of a formal system specified by the starting position (the pattern of Os and Xs on the tape at the beginning of the computation) and the rules (the instructions given by the instruction tables). The moves of the game are the changing states of the machine that correspond to the specified steps of the computation.
Turing then proved that for any formal system, there exists a Turing machine that can be programmed to imitate it. This kind of general formal system with the ability to imitate any other formal system was what Turing was getting at. These systems are now known as "universal Turing machines." The theory was first stated in a paper with the forbidding title "On Computable Numbers, with an application to the Entscheidungsproblem."
The Turing Machine was a hypothetical device Turing invented on the way to settling a critical question about the foundations of mathematics as a formalized means of thinking. He showed that his device could solve infinitely many problems, but that there are some problems that cannot be solved because there is no way of predicting in advance whether or when the machine is going to stop. Here is where the parting of the ways between metamathematics and computation occurred.
Our simple example of a doubling program took only twenty-six steps. But there is no way of knowing whether or not other programs (which can be direct translations of theorems in number theory) will ever stop. By proving this, Turing made an equivalent point about all mechanical systems (i.e., systems in which the procedures are definite enough to be carried out by a machine).
Turing and his colleagues ended the long search for a logically certain basis underlying formal systems by making the shocking discovery that there are a number of important features about formal systems about which we can never be certain. Formal systems, by their very nature, have certain inherent limitations. At this point, the theory of computation became something more than an important branch of metamathematics, as the properties of formal systems faded into the background and the properties of machines emerged in a wholly unexpected and dramatic manner -- because at the same time that Turing put a limit on the capabilities of formal systems, he showed that there is indeed such a thing as a universal formal system. And that is what a computer is, in the most basic sense.
The way the universal Turing machine imitates other Turing machines is as automatic as the way our doubling machine multiplies the input by two. Assuming that the control unit of the device is capable of interpreting simple instructions -- something that had been a matter for toolmakers, not mathematicians since Babbage's time -- it is possible to encode a more complex list of instructions describing various Turing machines and put them onto the input tape, along with the starting position.
Just as the instructions followed by the machine can be stated in English (or German or French, etc.), or in an abbreviated form like "7XL8," they can be encoded in an even more primitive form. A code can be devised, using the same Xs and Os, that can uniquely represent every instruction and instruction table (program). Both the instructions and the data can be put onto the same tape. A universal Turing machine can then scan that coded tape and perform the function specified in the code (doubling the number on the data portion of the tape, in our example).
This code can be interpreted by a machine, a machine that automatically manipulates the tokens, given a list of instructions and a starting configuration. When the machine stops, you read the tape and you get the output of the program. In this case, you put the number you want to double in the starting configuration, and then let the machine metaphorically clank away one square at a time, erasing and writing Os or Xs. When the machine stops, you count the Xs in the final tape configuration.
The list of instructions is what turns the universal Turing machine into the doubling machine. Mechanically, there is no difference between the two machines. The particular instructions described by the code are what the universal Turing machine operates upon. If you can describe, in similarly codable instructions, a machine for tripling, or extracting square roots, or performing differential equations, then your basic, dumb old universal Turing machine can imitate your tripling machine or square root machine.
That ability to imitate other machines is what led to computers. The numbers (or Xs and Os) on the tape aren't that important. They are only symbols for states of a process -- markers in a "doubling game." The list of instructions (the program) is what enables the machine to double the input number. The instructions, not the symbols that keep track of the way they are carried out -- the rules, not the markers -- are what make the Turing machine work. Universal Turing machines are primarily symbol manipulators. And digital computers are universal Turing machines.
It isn't easy to think of the rules of a game as a kind of machine. The task is somewhat easier if you think about "mechanical processes" that are so clearly and specifically defined that a machine can perform them by referring to an instruction table. All universal Turing machines are functionally identical devices for following the program specified by an instruction table. The instruction tables can differ, and they can turn the universal Turing machine into many different kinds of machine. For this reason, the programs are sometimes called "virtual machines."
The distinction between a universal Turing machine and the many different Turing machines it is able to imitate is a direct analogy to digital computers. Like universal Turing machines, all digital computers are functionally identical. At the most basic level, every digital computer operates in the way our doubling machine did with the squares and Os and Xs. Instead of building a different physical machine to solve different problems, it is more practical to describe to an instruction-following machine different virtual machines (programs) that use this one-square-at-a-time mechanical instruction-following process to solve complicated problems through a pattern of simple operations.
Following instructions is the nature of digital computers. The difference between a computer calculator and a computer typewriter, for example, lies in the instructions it follows -- the coded description it is given of the virtual machine it is meant to imitate in order to perform a task. Since computers understand "bits" that can correspond to O and X, or 0 and 1, or "on" and "off," you can use these symbols to write descriptions that turn the general machine into the specific machine you want. That's what programmers do. They think of machines people might want to use, and figure out ways to describe those machines to general machines -- computers, that is.
It would be too time-consuming to achieve anything significant in programming if programmers had to spend all their time thinking of ways to describe machines in strings of Os and Xs. The O and X code is similar to what is now called
machine language , and a relatively small number of programmers are actually able to write programs in it. But what if you could build a virtual machine on top of a virtual machine? What if there were a coded program written in terms of Os and Xs, much like the system we described for the doubling machine, except that this new system's task is to translate symbols that humans find easier to use and understand -- instructions like "go left" or even "double this number" -- into machine language?
Assembly language , a close relative of machine language except that is uses recognizable words instead of strings of Xs and Os, is a lot more manageable than machine language, so that's what most programmers use when they write video games or word processors. Assembly language makes it easier to manipulate the information in the "squares" -- the memory cells of the computer -- by using words instead of numbers. You use the translation program described above, called anassembler , to translate assembly language into machine language.Every different microprocessor (the actual silicon chip hardware at the core of every modern computer) has a list of around a hundred primitive machine language operations -- known as "
firmware " -- wired into it. When the assembler follows the instructions in the assembly language programs, using machine language to talk to the microprocessor, the virtual machine meets the actual machine, and the computer is able to accomplish the specified task for the human who started the whole process.Since you have to accomplish tasks in assembly language by telling the computer very specifically where to find the information you want, when to move it into an "active square" called an accumulator, and where to store it when it is processed, writing anything complicated in assembly language can be a chore -- like writing a book with semaphore flags, or measuring a city with a