Turing the Father of Computer Science



Yüklə 341,87 Kb.
Pdf görüntüsü
səhifə4/14
tarix08.08.2018
ölçüsü341,87 Kb.
#61087
1   2   3   4   5   6   7   8   9   ...   14

VII

instructions. The authors established an epistemological relationship between

Babbage’s work and the principle of a large store.

15

Furthermore, from the au-



thors’ perspective, the incentive to use a large store was primarily an engineering

one.


When ENIAC was under construction, von Neumann and his co-workers de-

voted considerable attention to the problem of the optimum form of a calcu-

lating machine. As a result of this it was shown that a calculating machine

should have a storage capacity of the order of 1,000 [8,000]

16

words and that,



given this, both operating instructions and pure numbers could be stored in

the same unit. [20, p.15, my emphasis]

Choosing to store both “operating instructions” and “pure numbers” in the

same store — as opposed to storing each in a separate store — was based on

practical concerns, not theoretical reasoning.

17

Likewise, the incentive among



many computer builders to list all instructions consecutively in one part of the

store and the pure numbers in another part (of the same store) was, according

to the Booths, based on the practical concerns of “simple process control” and

economic use of “memory capacity” [20, p.15, 23–24].

18

Common storage of numbers and instructions inside the computer opened



the door for new programming techniques. And, the realization that many com-

putations can be reduced to iterative processes made it “most desirable” that

data could be erased in any given memory location and be replaced by new

material [20, p.23, my emphasis] — a topic which I shall return to shortly.

19

Common storage was, however, not a prerequisite to embark on program-



ming. Some people, like Konrad Zuse, stored commands apart from numbers (cf. [53,

p.76]). Similarly, Haskell Curry made a sharp conceptual distinction between

commands and pure numbers [77]. Another important name in this regard is

Aiken, as the following words from Grace Hopper in 1978 indicate:

Aiken was totally correct in saying that the programs and the data should be

in separate memories, and we’re just discovering that all over again in order

to protect information. [111, p.21]

Indeed, in practice today, most software never treats data as code [49].

20

Space Cadets



Specifying the orders to accomplish a computation was a tedious task. Relieving

the programmer from that task was the job of the “space cadets” — a name that

Carr gave in 1953 to those programmers who wanted to invest time and money in

building interpreters and compilers [113, p.210–211]. Carr and his space cadets

(including Booth, Gorn, Perlis, and Wilkes) advocated automatic programming.

They wanted to design “pseudo codes” — “each order of which will, in general,

represent a number of orders in the true machine code” [20, p.212].

In my eyes, Carr stood out in the 1954 ‘Symposium on Automatic Program-

ming for Digital Computers’ [91] in that he consistently and repeatedly described

both the true machine code and the pseudo code as a “language”.

21

Carr viewed




VIII

automatic programming as the problem of closing the “gap” between the “exter-

nal decimal language” and the “intermediate binary language”, of recognizing a

“dual language system” and the need to program the “translation between the

two languages” [22, p.85].

22

Finally, the “lack of compatibility” between existing



digital computers was the incentive to search for a “universal language” — an

idea that was mostly, although not solely, Gorn’s [22, p.89][85].

Indeed, it was Carr’s later good friend, Saul Gorn, who — in the eyes of Grace

Hopper — stole the show at the 1954 symposium on automatic programming.

“Looking forward to what Dr. Gorn will tell us”, Hopper expressed her curiosity

in her opening address towards the development of a “universal code” that can

be taught to mathematicians and that each computer installation can provide

by means of an interpreter or compiler [91, p.4–5]. To counter the proliferation

of “specialized codes”, Gorn stressed in his talk the need for “a code more or

less independent of the machine”, so that the “artists, scientists, and professions

can then return to a common language and creative thinking” [53, p.74–75].

23

During the first half of the 1950s, Gorn worked at Aberdeen Proving Ground



where three “general purpose machines” were in use simultaneously: the ENIAC,

EDVAC, and ORDVAC. This diversity in machinery prompted a “universal coding”

experiment. And so Gorn developed a “general purpose common pseudo-code”

that could serve as input to both the EDVAC and the ORDVAC [56, p.6].

Loop Control

At the symposium, Gorn enumerated four machine requirements that had to be

met in order to provide for a universal code, and he did this by referring to Carr’s

prior research on loop controlled machines — research that I have yet to come

across in primary sources. Gorn’s account, reproduced below, serves to back up

my conjecture that up and till around 1954 Carr and Gorn did not view loop

controlled computers as practical realizations of universal Turing machines.

The first machine requirement to obtain loop control, Gorn said, was due

to the universal code being “translatable by the machine into the machine lan-

guage”. Therefore, the machine had to be able to “construct and adjust its own

commands”.

24

To do the latter, “[w]e will therefore assume that commands are



stored internally just like other words, so that the only way in which a word

is recognized as a command is that it reaches the control circuits through the

sequencing of previous commands. (In the terminology of J.W. Carr III, we are

requiring a Type II Variable Instruction Machine.)”.

25

In addition to common



storage, the machine should also have “the other two properties described by

Carr as necessary for ‘loop control’, namely that they be able to transfer con-

trol out of sequences, and that they be able to make decisions”. Finally, as a

fourth requirement, the machine should be capable of carrying out elementary

commands, such as “adding, multiplying, subtracting, extracting a digit, tak-

ing absolute values, taking negatives, shifting digits, and, most elementary of

all, stopping, reading, writing, and generally transferring information from one

place to another.”

26

To do this, the machine should have “one or more forms of



erasable internal storage” [53, p.76–77, my emphasis].


Yüklə 341,87 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   14




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə