The concepts of
what computers could become pre-dated the evolution of the mutational
technologies that actually made computers feasible. These concepts arose as
ideas in the minds of prescient thinkers and provided nourishment to the
tenuous social ecosystems into which the computers emerged, quite similar to
the Christian concept of the word made flesh. The philosophical underpinnings
were conceivable even though the means to effect the concepts had not yet
arrived. Perhaps the first stone of the foundation was found in the concepts of
mathematics.
Recent research,
in particular by George Lakoff and Rafael Núñez, in Where Mathematics Come
From, has revealed the interesting probability that the human capability to
deal with mathematics, starting with our ability to distinguish and manipulate
numbers, actually derives from our physical motor skills. The theory holds that
the capability of the human brain to manipulate numbers follows from our
ability to manipulate objects with our hands and feet. From this facility for
manipulation of objects, the human brain subsequently extended the ability to
also deal with the manipulation of numbers and then with more abstract
concepts. This metaphorical capability is also closely aligned with language.
A refinement on
the concept of the mechanical computing machine that pushed it more in the
direction of today’s computers was the definition of the Turing machine. In 1936, Alan Turing published a paper, On computable numbers, with an application to the Entscheidungsproblem, in which he described a
computation process that was directly applicable to what would become stored
program computers. Specifically, Turing described a model of computing that was
built on the conception of a moving tape divided into cells. Each cell
contained the parameters that completely specified a state of the machine. By
moving to successive cells, the machine could be made to move from one state to
the next state. The tape, in turn, could be written on and moved in both
forward and reverse directions. The end result was a completely constrained
computational sequence, an incarnation of a finite state machine. As we have
noted, the Turing machine pre-dates the computer as we know it today. Its
importance was in establishing a model of a computing process. The true precursor
to the modern computer was conceptualized by John von Neumann.
John von Neumann
was something of a modern renaissance man. He was responsible for world-shaping
developments in a number of fields, most notably in mathematics. However,
perhaps his most memorable discovery, certainly as far as this book is
concerned, was his work in automaton theory and specifically his specification
of a self-replicating machine. This machine has an eerie similarity to the
operational characteristics of the DNA molecule, together with its supporting
infrastructure found in the living cell. What’s intriguing about this is the
timing; von Neumann’s architecture was published almost a decade before Crick
and Watson published their discovery of the DNA molecule and its double helix
structure. Moreover, after the presentation of the structure of DNA, it was
another several decades before the interaction of the molecule with the various
protein interactions through which it works became fairly well understood. Only
recently has it become moderately well understood how DNA functions as a
self-replicating machine in a manner well characterized by von Neumann’s
specifications.
Von Neumann’s
self-replicating machine was defined with two parts, each a distinct machine in
its own right. The two machines were termed a universal computer and a
universal constructor. The purpose of the constructor was to follow a sequence
of commands from the computer and, using raw materials at its disposal,
construct a perfect replica of itself and of the universal computer. The
program from the universal computer (parent) was then loaded into the new
computer (child). Thus, the new machine would be instilled with the goal of
replicating itself via
|