Read It Began with Babbage Online
Authors: Subrata Dasgupta
Certainly, during the first decade of the stored-program computer, pioneers such as Wilkes, Kilburn, and Turing in Britain; and Burks, Goldstine, and von Neumann in America freely crossed “cultural” boundaries. In narrating this story, I have assumed the definition proposed at its very beginning: computer science is the science of automatic computation and, thus, the science of automatic symbol processing (see Prologue, Section I). This subsumes the viewpoint of Newell, Perlis, and Simon cited earlier.
But let us return to the two dissertations authored by Wheeler in 1951 and Gill in 1952. Wheeler tells us that his dissertation presents an account of methods developed for the EDSAC, but these methods are as applicable for other computing machines.
7
As for Gill, he, too, asserts that his work as presented in his dissertation are his own particular contributions to the methods devised for the EDSAC.
8
Both these men, then, were concerned with the development of
methods
for using the EDSAC. Yet, like Wheeler, Gill also pointed out that although the methods described were for the EDSAC, they would interest users of other similar machines.
9
Here we see two common characteristics of these dissertations: they were both concerned with a
single computational artifact
(in their case, the EDSAC) and with the
methodology
of its use. Both authors stated categorically that what they produced were methods; their contribution to this still-embryonic science was in methodology. And
although they were concerned with a particular computer, the EDSAC, they both believed that the methodology had a “universal” potential, that it embodied ideas that were valid for other similar computational artifacts.
So what shape did this methodology take?
Wheeler, as we have seen, invented the closed subroutine and a symbolic language that would later be called assembly language, along with a programming system for assembling and loading the program into the EDSAC memory prior to execution (see
Chapter 9
, Sections V and VI). Thus, when he spoke of “methods,” they were his methods. His language to describe these methods is worth noting. He speaks of programs that “are usually” constructed from subroutines, that “it is convenient” to build a library of subroutines,
10
that “it is not convenient” to use subroutines in some circumstances,
11
and why “it is very necessary” to remove errors from a program before it is used.
12
“It is convenient,” “are usually,” “it is not convenient,” “it is very necessary.” The phrases used by Wheeler are not descriptions or analyses of the way things are, but of the way things
should be
. Wheeler is not like natural scientists or pure mathematicians, who are concerned with how things are; he is concerned with how things ought to be (see Prologue, Section II). Moreover, these phrases do not describe objective situations, objects, or events of the sort that traditional engineering research deals with.
Human beings are part of the system being described
. Indeed, “description” is the wrong word. What Wheeler stated were
prescriptions
, telling the reader (particularly, the potential EDSAC user) how to go about doing certain programming tasks. And prescription is, of course, what methodology is all about.
However, scientific research, not the least research leading to the academic respectability of a PhD, must produce knowledge of some kind. In the natural sciences, knowledge is fundamentally in the form of theories, hypotheses, laws, “facts,” experimental or natural observations, measurements, and so on. These kinds of knowledge declare or state properties or relationships. Colloquially, they are “know-that” knowledge; more formally,
declarative
knowledge.
13
The kind of knowledge produced by Wheeler and described in his dissertation was not declarative knowledge. It might
seem
that he was declaring what a closed subroutine was, what initiating orders were, what interpretive subroutines were, what the EDSAC assembly language and the assemblerâloader system were, but his descriptions of these entities were a means to an end. The knowledge he actually produced was
how to use
those concepts: “know-how.” Hungarian-British scientistâphilosopher Michael Polanyi (1891â1976) called such a piece of knowledge an “operational principle.”
14
Accordingly, I will call rules, methods, operations, and procedures that specify how to do things
operational knowledge
. Technological knowledge, no matter how grounded it is in mathematics or the natural sciences, is ultimately in the form of operational knowledge.
15
There are, of course, operational principles in the natural sciences. Experimental techniques, methods of chemical analysis, deployment of scientific instruments all embody operational knowledge. However, the difference is crucial. Operational knowledge in the natural sciences are means to the production of declarative knowledge. A chemist learns to use a spectrometer to obtain (declarative) knowledge of the composition of a complex chemical compound, whereas in the kind of science Wheeler practiced for his PhD dissertation, declarative knowledge is at best the
means
to the production of operational knowledge. Ultimately, operational knowledge is what matters in the sciences of the artificial.
We observe a similar pursuit of operational knowledge in Gill's dissertation. As the title states, his concern was to show
how
the stored-program computer in general, and the EDSAC in particular, could solve problems in mathematics and physics. The basic schema for doing this, as his chapters explicate, was (a) describe the problem, (b) discuss the general approach to its solution, and (c) specify the process.
The end product, the desired result, were proceduresâin his case, in the form of EDSAC programs (specifically, subroutines). These subroutines
were
the knowledge Gill produced, as he acknowledged.
16
However, it is not enough to describe the automatic procedures embedded in a subroutine. One must also describe the rules
humans
have to follow when deploying the subroutines. So human actions or choices are also knowledge products. Gill stipulates that one of the subroutines he had developed “may be placed anywhere” in the EDSAC memory;
17
that another subroutine “requires” some additional subroutines to be used in conjunction with it.
18
He writes that certain variables “are [to be] stored” in a certain manner in memory, that a certain number of memory locations “are required” by a certain subroutine, that a certain parameter “should be chosen” to meet a certain condition,
19
that the first order of a particular subroutine “must be placed” in a certain location in memory.
20
The words in quotes specify what a user has to do to enable the subroutines to work successfully. Gill's awareness of the nature of the knowledge he produced was revealed at the conclusion of one of the chapters wherein he claimed that the originality of his work lay in the particular subroutines described in that chapter, along with the programming techniques described for solving differential equations.
21
The operational knowledge produced by Wheeler and Gill was a blend of human and machine operational principlesâvery specifically, computer programs, procedures, notation (language) to use, and rules. Their contributions acknowledged the significance of the human being and of the necessity of a symbiosis of human and machine in automatic computing.
22
Moreover, they were not just concerned with the method of programming the EDSAC, although that machine was the vehicle of their thinking. Their concern was more universal: the general problem of program development (in present-centered language, programming methodology). Indeed, Gill must surely be among the very first to regard this new kind of artifact called a computer program in terms of what psychologists would call
developmental
and biologists would call
ontogenetic
. I have used the word
ontogeny
earlier in this story (see
Chapter 7
, Section I). Biologists use this word to mean the “life history of an individual both embryonic and postnatal,”
23
whereas, to the psychologist, development refers broadly to the expansion of mental capabilities with respect to experience and competence, from infancy to adulthood.
24
Both biologists and psychologists view development as a record of change (to the body in one case, the mind in the other) from an elemental, embryonic, or undifferentiated state into a complex, differentiated, mature, and fully functioning state. This same notion was carried into the domain of programming by Gill. Thus, he explains that when using an automatic computer to solve a problem, one must first express the problem in mathematical terms, then formulate the latter in terms of the operations the computer must carry out. There is, then, a
human
process preceding the machine process, and the former is what Gill called “the development of the programme.” He further noted that this development process causes the “programme” to change “form,” both structurally and logically.
25
He identified three significant kinds of change: (a) transformation of “human-oriented” statements to “machine-oriented” statementsâthe former more easily comprehended by human beings, and the latter interpretable by the machine; (b) transition from a sequence of general statements to a precise, machine-executable sequence of operations; and (c) transformation from symbolic statements to assertions that relate to particular circuits within the machine.
26
Gill noted that all these changes must happen before automatic computation can even begin. And the user's aim was to effect these changes simply and economically.
27
So these changes are to be effected as part of program development “outside the machine.”
28
However, program development does not end there; further changes must occur “during the input of the programme.”
29
This is when the machine has its first role in this processâfor example, in converting decimal numbers to binary form
30
or in inserting actual values to parameters within instructions. These tasks are performed by the initial orders. Other tasks performed by the machine in program development were the process of assembly and loading (see
Chapter 9
, Section VI), and the loading of subroutines into memory.
Last, program development also occurred “during the course of the calculation”
31
âthat is, while a program was actually executed. Here, the agent of development was entirely the machine. A particular example was the inclusion of “interpretive routines,” which is a routine held in a computer's memory and that executes instructions in another routine also held in memory, one at a time. In other words, an interpretive routine translates an instruction into a set of actions that are executed immediately before the next instruction is interpreted.
32
The term
interpretive routine
33
would later enter the mainstream language of programming as
interpreter
.
34
Interestingly, Gill likened the action of an interpretive routine to the operation of Alan Turing's “universal computing machine” of 1936 (see
Chapter 4
, Section V), which can imitate another machine.
35
This is a
very
rare instance of the early innovators of practical stored-program computers making an explicit reference to Turing's theoretical work.
Gill clearly believed that an understanding of the stages in the development of a programâwith
humans and machines as co-agents
in the processâwas important, that the articulation of this understanding constituted an important body of operational knowledge. Thus, his claim to the originality of his PhD dissertation lay as much (as he stated) in his contribution to this overall understanding as to the development of particular procedures (subroutines) for solving particular problems in mathematics and physics.
36
These two dissertations for which PhDs were conferred by the University of Cambridge are invaluable in what they reveal about an emerging science of computing. They offer glimpses of what we may call a scientific
style
in the realm of computing research.
Discussions of style belong predominantly in the realm of art, architecture, and literature. Indeed, for some art historians the history of art
is
the history of artistic style,
37
just as the history of architecture
is
the history of architectural style.
38
For art and architectural historians,
style
refers to features of paintings, sculptures, buildings that allow works to be “placed” in their historical setting.
39
But style also refers to the
way
in which something is done. In this sense, it characterizes some pattern in the way one perceives, visualizes, thinks, reasons, symbolizes, represents, and draws on knowledge in the pursuit of doing something. Generally speaking, we may call this
cognitive style
; understanding a person's creativity may entail unveiling his cognitive style.
40
In the realm of science, we can detect an individual scientist developing her own particular cognitive style of doing science, her
scientific style
.
41
We can also imagine a community of like-minded people coming to share a cognitive style. This is well understood in the realms of painting (such as impressionism, surrealism), and literary writing (such as magical realism); it may also produce, among a community of scientists, a shared scientific style.