Classic Computer Magazine Archive COMPUTE! ISSUE 65 / OCTOBER 1985 / PAGE 107

Computers and Society

David D. Thornburg, Associate Editor

Of Babbages And Things

Computer jargon and concepts have permeated our language in strange ways. This came home to me one night when I heard a caller on a talk show say that she had trouble "interfacing" with her partner. I guess this is just a reflection of the pervasiveness of computer technology. Every new technology spawns its own vocabulary, and computers are no exception.
    In fact, the computer industry has provided us with both a rich assortment of words and a rich collection of concepts that alter how we think about our world. While the words of technology wax and wane in popularity, the concepts are longer-lived. This gives us the chance to misjudge the newness of a concept we have just learned. When this happens, a brief look at history often shows that what we thought was new was known a long time ago. I got caught in one of these historical time warps last spring. I was teaching a graduate-level computer course at Stanford University and had introduced a model of program design that I called a microworld.
    To my way of thinking, microworlds are made of two kinds of things-objects and operators. The objects have certain attributes, and the operators work on these objects to create new instances of them. These new instances may inherit some or all of the attributes of the old objects. Sound like gobbledygook? Read on.
    For example, the microworld of arithmetic contains objects we call numbers. These numbers have attributes (they may be integers, decimals, imaginary, etc.). The operators for arithmetic include addition, subtraction, multiplication, and so on. These operators combine the number objects to produce new numbers. Notice that this way of thinking about arithmetic has nothing to do with computers.

Computer Microworlds
Because we have devised ways to represent both numbers and their operations inside computers, the microworld of arithmetic is a suitable domain for implementation in a computer. Of course, the arithmetic microworld is not the only one we have. For example, word processing is a microworld which contains letters as objects and insert and delete as operators.
    What I like about this concept is that it provides a framework for creating flexible computer programs in nearly any domain. To build a microworld, one has to identify the objects and operators, and then build representations of these in the computer using a suitable programming language.
    I thought this way of looking at programming was fairly new, but I soon received the shock of my life while reading a collection of papers about Charles Babbage and the Analytical Engine-a nineteenth-century predecessor to the digital computer. At the end of one article translated into English by Ada Augusta, Countess of Lovelace, were some notes added by the Countess:
    In studying the action of the Analytical Engine, we find that the peculiar and independent nature of the considerations which in all mathematical analysis belong to operations, as distinguished from the objects operated upon and from the results of the operations performed upon those objects, is very strikingly defined and separated. It is well to draw attention to this point, not only because its full appreciation is essential to the attainment of any very just and adequate general comprehension of the powers and mode of action of the Analytical Engine, but also because it is one which is perhaps too little kept in view in the study of mathematical science in general.
    Here was my microworld model, described by Ada Augusta in 1842!

So Much For Arithmetic
Lest you think she had only mathematics on her mind, she went on to say:
    By the word operation, we mean any process which alters the mutual relation of two or more things, be this relation of what kind it may. This is the most general definition, and would include all subjects in the universe.
    In fact, she went on to point out that the Analytical Engine was capable of symbolic computation and was not restricted to numerical analysis. This capability came from the fact that the programs in the Analytical Engine (coded on punch cards) not only contained the values of variables, but also the sequence of commands and operations to be performed. The Analytical Engine had what we call today an instruction set. These primitive instructions allowed values to be read and saved to memory (which Babbage called the store), and a series of basic operations, such as addition, which were carried out in the central processing unit (which Babbage called the mill). The punch cards contained what we would call machine language programs.
    The Analytical Engine embodied the basic concepts of today's computers, but nineteenth-century craftsmen lacked the technology to build it. Though it was not constructed in Babbage's lifetime, his dreams and Ada's ideas finally came to light a century later.
    So the next time you toss computer jargon into your conversation to be trendy, remember that you might be reflecting on the trends of some British inventors in the 1800s!