Ada Lovelace (often called “the first computer programmer”) had an important insight when she contemplated Charles Babbage’s difference engine. She believed that it should move beyond mere calculation. It should, instead, tackle computation more generally. In other words, it should move from numerical operations to “symbolic manipulations”. This raises the philosophical issue (at least in this essay) as to what numbers are: Are they abstract objects or mere “marks on paper”? Moreover, how do this question relate to our view of computers generally?

General Purpose?
When the words “general purpose computer” are used it’s often the case that they aren’t really explained. Indeed, some laypeople may even interpret such words literally. However, the “general” in “general purpose” is far less… general than you may think.
In very simple terms, the words “general purpose” refer to a machine that’s Turing-complete. Moreover, that term only refers to a machine’s relation to other machines, not to being able to do the washing up or take the dog for a walk.
A machine (or something purely abstract) is said to be Turing-complete if it can be used to simulate any Turing machine. Thus, this refers to a machine understanding, decoding or simply recognising other machines — and, more importantly, working on — or with — their rules, algorithms, data, etc. This is technically expressed in terms of Turing equivalence. Thus:
Two computers P and Q are called equivalent if P can simulate Q and Q can simulate P.
Charles Babbage

The interest in general-purpose computers dates back to the work and designs of Charles Babbage. So it’s here that Babbage’s “difference engine” and “analytical engine” need to be discussed.
The analytical engine was a proposed computer (or engine) designed by English mathematician Charles Babbage. He first described it in 1837 as the successor to his own difference engine, which was a design (i.e., not a concrete thing) for a mechanical calculator.
The historian of computing, Doron Swade, states that the analytical engine
“is a general-purpose computational engine [which] embodies [ ] almost every single significant logical feature of the modern digital computer”.
[See note.]
The difference engine, on the other hand, dealt with “something specific that has a fixed set of functions”.
The analytical engine was general purpose because “it was meant to be programmable, and it would automatically execute multiplication, division, subtraction and addition”.
In terms of the title of this essay: it can be seen here that we’re still dealing with numbers when it comes to the difference engine. Or, more accurately, we’re dealing with arithmetic. Clearly, a machine that deals exclusively with numbers (or arithmetical operations) cannot be “all purpose”. So the advance here is to use numbers to deal with… all purposes. Or, more widely, to use symbols to deal with all purposes. (Numbers and symbols as they are instantiated within “engines”, machines or computers.)
Ada Lovelace

An historical account of the difference between the difference engine and the analytical engine may be of help here. The following paragraph is Doran Swade on that subject as it relates to Ada Lovelace:
“[ ] For those years [in the late 1930 and early 1940s], John Fuegi suggested, there is no evidence that the first machines were moving beyond the difference machine in the way Lovelace’s notes move beyond. They were still continuing with calculation, as though they had gone back to the difference engine rather than the analytical engine. After that it is hard to define historically when computers moved from calculating, say, the simple trajectories of artillery shells and mathematics to general-purpose computing.”
The important word in the long quote above is “calculation”. Simply put, calculation alone couldn’t have been classed as general purpose. So it can be asked here how the move from calculation to “general-purpose computing” came about.
Swade tells us that Ada Lovelace
“saw that these machines were not bound exclusively by numbers, making the essential transition to a number representing something other than quantity”.
So numbers weren’t actually transcended here. Instead, the idea of numbers as exclusively representing “quantity” was transcended. This is what flummoxes many laypersons. They see numbers, and then they assume either that such numbers have a relation to other numbers, or that the numbers must refer exclusively to quantities of some kind.
These distinctions were captured by Lovelace herself. She made the distinction by stating that calculation and computation aren’t the same thing. This also shows us that calculation is a subbranch of computing, rather than computing being a subbranch of calculation.
In terms of the analytical engine, it “could represent something other than quantity, such as notes of music or letters of the alphabet”. Indeed, if you randomly throw a pack of cards onto the floor, the many relations between the cards can still be represented numerically — even if they don’t instantiate symmetries or patterns. (There is little point in actually doing this.) On the other hand, numbers can represent the physical nature of a quark or the tensile strength of a bridge over a river.
Lovelace also captured something that later became important in late-19th-century logic. As Swade puts it, Lovelace “made the transition from arithmetic to symbolic manipulation”. Indeed, what the manipulation of numbers and symbols share is that this is carried out “according to rules”. (It can now even be said that rules are fundamental: numbers or symbols are secondary.)
[All this can be seen in Ada Lovelace’s “notes”, as found in ‘Sketch of of the Analytical Engine Invented by Charles Babbage’. These notes can also be found here.]
Gödel Numbering, Numbers and Symbols
Now take the specific and well-known case of Gödel numbering some eighty years after Lovelace’s death.
Kurt Gödel assigned numbers to things which aren’t quantities, such as mathematical and logical statements, proofs, etc. In this limited sense, then, numbers are convenient tools for representing things which aren’t themselves numbers.
However, what about using numbers to symbolise literally anything at all?
This is why non-mathematicians are often intimidated by the use of numbers and other mathematical devices. In other words, many people don’t realise that there can be a numerical account of almost anything! (For example, window open = 1. Window shut = 0.)
Numbers are as useful or convenient as hammers, nails, or whatever. This idea is a seemingly non-Platonic view of numbers. And even in physics a physicist can take a non-Pythagorean (rather than non-Platonic) position on numbers as they relate to the world, and on their use in physical theories.
Symbols can represent things other than numbers or quantities. Added to that, if one is a non-Platonist (rather than a non-Pythagorean), then, say, the number 2 is a symbol even if there are no quotation marks around it. In other words, 2 (not just ‘2’) is a (both metaphorically and literally) “mark on paper”. This stance is directly relevant to the use of numbers in computers and other machines.

Platonists and many others, on the other hand, believe that the number 2 is an abstract object. (They may never express their position in that precise way.) This basically means that 2 is an abstract Platonic form in Platonic heaven — alongside 3, 1001, Truth, Justice, Man, etc.
Of course, even non-Platonists deny that numbers are purely symbols. Take this categorical statement:
“Numbers are not symbols, but they do have a meaning that allows them to be added, multiplied, compared, and so on.”
If a number is only a mark on paper (or purely syntactic in nature), then it doesn’t offer us information or a meaning. Arguably, if 2 isn’t a mark, then it it must have, say, a “meaning” or even a “referent”.
This debate parallels one which occurred within modern logic.
Take this remark which states that modern logic is
“fundamentally a calculus whose rules of operation are determined only by the shape and not by the meaning of the symbols it employs, as in mathematics [ ]”.
It’s also often said that logic concerns itself with the form of arguments, not with their contents.
So now we can say that arithmetic (i.e., not all of mathematics) concerns itself with the forms of numbers, not with their contents.
This huge and historical debate needn’t be discussed here, save to say that it has relevance to the use of numbers and symbols in computers. In this case at least, the “shape” of numbers is, arguably, all that’s required.
Note:
Those outside computer nerdery may now be wondering how the word “logical” (as in the earlier clause “almost every logical feature of the modern digital computer”) is being used here. More precisely, some readers may wonder how “every logical feature” can be captured or represented by the actions of a computer.
For example, how do we move from either/or (logically symbolised as ∨) to 1 or 0, and then to an “on or off” operation (as found in logic gates) in the computer’s circuitry? Moreover, what about every other logical feature (or operation) human beings have created and been interested in?
No comments:
Post a Comment