• Aucun résultat trouvé

A Classification Scheme for Program Controlled Calculators

Dans le document History of Computing (Page 48-60)

Andreas Brennecke

Abstract. What constitutes a computer? This question is of interest to historians trying to decide whether a specific device can be called a computer or not, and to computer scientists wanting to gain a better

understanding of the essential concepts of computer architecture. In both cases, the answer must encompass more than just a definition. Many concepts and features have influenced the development of the modern computer. But which of them are necessary to realize the computer's full capabilities and which are the most important ones?

When considering historical machines, it is important to pay attention to their practical use and to identify the human activities involved. A new classification scheme will be proposed in this contribution that is derived from the historical analysis of computers and which cannot be obtained from theoretical concepts alone.

1—

Introduction

The history of program controlled calculators – especially the question of which concepts and features are essential characteristics of a computer – is not only of interest to historians but also to computer scientists who want to obtain a better understanding of basic concepts:

By attempting to define and classify, we come to understand more clearly the essential character of the computing machines with which history presents us when stripped of all technological and accidental differences and reduced to their fundamental logical design.1

1 Allan G. Bromley, ''What Defines a 'General-Purpose' Computer?" Annals of the History of Computing 5, no. 3 (1983):

303–305, on 305.

However, certain concepts seem to be so obvious today that their actual meaning remains opaque even to professionals of computing. Other concepts have become too complex to be easily understood today. As John A. N. Lee argued:

One of the other benefits of retrospection is the occasion to identify the fundamentals of concepts which have now become perceptually complex. 2

Hence, it came as no surprise to me that graduate students taking part in a course on the history of computers at our university were unable to give a proper definition of program control. They had some vague ideas but could not say whether Jacquard looms or analog computers are program controlled or not. Other terms such as von Neumann architecture, universal computer, stored program computer or general purpose computer were often used by them without proper understanding of the underlying ideas and mechanisms. Obviously, some

clarification is needed.

This contribution proposes a classification scheme for program controlled calculators from the viewpoint of a computer scientist. It will be argued that the scheme may lead to a better understanding of fundamental concepts and that it may help historians to gain a better understanding of the course of events in the computer field.

2—

Principles and Practice

When classifying computers it is not sufficient to consider theoretical concepts only. Theoretical computer science has developed notions like m-recursive functions, primitive recursive functions and the Chomsky hierarchy to describe the potential of computing devices. However, it was important for the constructors of program controlled calculators, especially in the early years, to design machines that could be implemented with the technology at the time. Theoretical concepts offer limited help here, because they do not sufficiently

differentiate between what can be done in principle and what can be accomplished in practice.

Raúl Rojas has shown that Konrad Zuse's Z3 could be called a universal computing device if it is provided with indirect addressing.3 This means that with indirect addressing and with no limitation on the size of memory, the Z3 could have calculated every computable function. In a later publication Rojas shows how to simulate

indirect addressing for a finite memory using only the original instruction set of the Z3, namely by using conditional executable code segments. Thus, the Z3 is as universal as any modern computing device. 4

However, this theoretical result does not fully reflect the practical power of the Z3. Although the length of the simulation program is not important from a theoretical point of view, it is relevant for practical purposes.

2John A. N. Lee, "Those Who Forget the Lessons of History Are Doomed To Repeat It–or, Why I Study the History of Computing," Annals of the History of Computing 18, no. 2 (1996): 54–62, on 58.

Universal computation in the sense of theoretical computer science depends on having unlimited storage, which real machines obviously cannot have. Modern computers have a relatively large memory so that results from the theoretical models can still be extrapolated. But early computing machines had very few memory cells to store results. Konrad Zuse's Z3, for example, could store only 64 values, the ENIAC (Electronic Numerical Integrator and Computer) had 20 accumulators5 and the ASCC (Automatic Sequence Controlled Calculator or Harvard Mark I) had 72.6 Can one view these machines as universal machines when they are provided with an unlimited storage?

In the early days of program controlled machines, universality did not play an important role for developers or users. Nevertheless, considerations about the potentials of the computers are as old as the early program controlled devices themselves. Charles Babbage wrote about his Analytical Engine:

These two memoirs [the memoir of General L. F. Menabrea and the notes made by Ada Augusta, Countess of Lovelace] taken together furnish, to those who are capable of understanding the reasoning, a complete demonstration – that the whole of the developments and operations of analysis are now capable of being executed by machinery.7

3 See Raúl Rojas, "Conditional Branching is not Necessary for Universal Computation in von Neumann Computers," Journal of Universal Computer Science 2, no. 11 (1996): 756–768.

4 Rojas does not show that the Z3 is equivalent to the most powerful theoretical computing models such as the Turing machine, but that the computing model of the Z3 is equivalent to any existing computer which can only have a limited memory. Cf. Raúl Rojas,

"How to Make Zuse's Z3 a Universal Computer," Annals of the History of Computing 20, no. 3 (1998): 51–54.

5 See Herman H. Goldstine and Adele Goldstine, "The Electronic Numerical Integrator and Computer (ENIAC)," Mathematical Tables and Other Aids to Computation 2 (1946): 97–110. Reprint in: Brian Randell, ed., The Origins of Digital Computers – Selected Papers, 2nd ed. (Berlin: SpringerVerlag, 1982), 359–373. Reprint in: Annals of the History of Computing 18, no. 1 (1996): 10–16.

6 See Howard H. Aiken and Grace M. Hopper, "The Automatic Sequence Controlled Calculator," Electrical Engineering 65 (1946):

384–391, 449–454, 522– 528. Reprint in: Randell, 203–222.

John V. Atanasoff, who built the ABC (Atanasoff-Berry Computer) remarked that his method of electronic computing could be extended to handle other tasks:

Once our prototype had proved successful, we both [John V. Atanasoff and Clifford E. Berry] knew that we could build a machine that could do almost anything in the way of computation.8

The machine built by Atanasoff and Berry could only be used to solve systems of linear equations. Other problems had to be manually reduced to linear equations.

The ENIAC was used to solve problems in different fields.9 Even assuming that the ENIAC contained all elements necessary for universal computation, and that it could be used for many tasks, it could not be used for very complex problems involving many calculations in practice. The ENIAC had to be rewired for each type of problem. During complex computations, the intermediate results had to be punched on cards and read again.

The operator had to keep track of the cards and their contents and so, for very complex problems, the human intervention required was overwhelming – Stan Augarten remarks about the ENIAC that its programming was

"a one-way ticket to the mad house."10 However, theoretical computer science deals with the formal aspects of problems and theoretical machines only and never considers human activities – an insufficiency also mentioned by Allan G. Bromley, when he discusses the term general purpose:

7 Charles Babbage, Passages from the Life of a Philosopher, (London, 1864). Reprint: Martin Campbell-Kelly, ed., Charles Babbage–Passages from the Life of a Philosopher. (New Brunswick, N.J.: Rutgers University Press, 1994), 102. Charles Babbage viewed analysis as a special, but in his time enormously important domain: William J. Ashworth, "Memory, Efficiency, and Symbolic Analysis – Charles Babbage, John Herschel, and the Industrial Mind," ISIS 87 (1996): 629– 653. Note that the term analysis had a different meaning in the 19th century.

8 John V. Atanasoff, "Advent of Electronic Digital Computing," Annals of the History of Computing 6, no. 3 (1984): 229–282, on 247.

9 See W. Barkley Fritz, "ENIAC – A Problem Solver," Annals of the History of Computing 16:1 (1994): 25–45.

10 Stan Augarten, Bit by Bit – An Illustrated History of Computers (New York: Ticknor & Fields, 1984), 128.

Complexity theory gives some measure of how difficult a task is for machines of a given type, but gives no measure of how difficult it is to program the machine for that task – the measure that I feel is relevant here.11

In order to clarify the conceptual power of the machines and the work that must be done by human operators to solve certain problems, it is helpful to develop a classification scheme that considers both theoretical principles and practical implementations. This contribution presents such a classification, identifying several stages in the development of sequence controlled machines. 12

3—

Analog and Digital

According to some dictionaries of computer science,13 analog variables are continuous and digital variables take discrete values only. A clock with hands is called analog, whereas a clock with a numerical display is referred to as digital. But the second hand of some modern analog clocks moves in discrete steps. Therefore, it is not correct to use the term analog as a synonym of continuous and the term digital as a synonym of discrete.

In most publications, the terms analog and digital are used to distinguish between the representation of numbers by physical quantities or by numerals. In the example of the clock, this is an adequate description. The angle of the hands of the analog clock represents the current time, whereas the numerical display of a digital clock shows numbers.

There is another interpretation which comes closer to the intuitive meaning of the term analog.14 There is a similarity between the rotation of the hour hand of the clock and the movement of the sun in the heavens as a consequence of the rotation of the earth. The clock builds a physical analogy to the rotation of the earth. This interpretation can be found in early papers on com puting machinery, in which analog and digital computers are compared.15 In later publications, when analog computing devices had lost their significance, the definition based on representation by physical quantities was used more often. 16

11 Bromley (n. 1 above), on 304.

12 The history of sequence control is well described in Brian Randell, "The Origins of Computer Programming," Annals of the History of Computing 16, no. 4 (1994): 6– 14.

13 For example see IEEE Standard Computer Dictionary–A Compilation of IEEE Standard Computer Glossaries (New York, 1991) or Duden Informatik–Ein Sachlexikon für Studium und Praxis (Mannheim: Duden-Verlag, 1989).

14 Analog: n. analogue . . . analogue: 1. something having analogy to something else . . . analogy: 1. a partial similarity between like features of two things, on which a comparison may be based: the analogy between the heart and a pump . . . Webster's Encyclopedic Unabridged Dictionary of the English Language (New York/Avenel, 1989).

Applying the term analog to computers implies that physical quantities are used to represent numbers within a calculation process, e.g. the angle of a shaft or a disc. Analog computers embody a physical analogy of the problem. For example, a system of mechanical integrators, adders, etc., connected by shafts, constitutes an analogy to the ballistic motion of a projectile. Digital computers represent their numbers using numerals (digits) and they implement an abstract method (algorithm) to solve a problem. So far, this characterization tells us nothing about the control of analog and digital computers.

4—

Program Control Is More Than Sequence Control

The concepts sequence control and program control seem indistinguishable and the term sequence control is part of the name of early program controlled machines, e.g. the Automatic Sequence Controlled Calculator (ASCC) or the Selective Sequence Controlled Calculator (SSCC).17 Frequently, the term program is used to refer to every sort of sequence controlled machine that has been built since the earliest known automata by Heron of Alexandria (Fig. 1). However, this makes it impossible to underline the conceptual differences between Heron of Alexandria's automata, early musical automata, Jacquard looms, sequence controlled calculating machines, and a modern computer.

Nevertheless, there seems to be some difference in the use of the terms sequence control and program control.

Brian Randell18 uses the term sequence control for all sorts of control mechanisms, but, when discussing the first sequence controlled calculators, he prefers the term program control. From the author's point of view, program control denotes a specific quality compared to simple sequence control. This difference will be made clear now using the terms analog and digital as they are discussed above.

15 For example see John von Neumann, "Entwicklung und Ausnutzung neuerer mathematischer Maschinen," Lecture in Düsseldorf to the Arbeitsgemeinschaft für Forschung des Landes Nordrhein-Westfalen on Sept. 9, 1954. Reprint in:

Schuchmann, Hans-Rainer, ed., Computertechnik im Profil (Munich, 1984) or John V. Atanasoff, "Computing Machine for the Solution of Large Systems of Linear Algebraic Equations," Unpublished memorandum (Ames, Iowa, 1940). Reprint in: Randell (n. 5 above), 315-335. Atanasoff claimed "to be the first to use the word analog for computers''. Atanasoff (n. 8 above), on 234.

In this later publication Atanasoff used the term analog in the sense of physical quantity.

16 For example see Karl Steinbuch and Wolfgang Weber, Taschenbuch der Informatik – Band 1: Grundlagen der Technischen Informatik (Berlin: Springer-Verlag, 1974).

17 Wallace J. Eckert, "Electrons and Computation" The Scientific Monthly 67:5, Nov. (1948): 315–323. Reprint in: Randell (n. 5 above), 223–232.

18 See Randell (n. 12 above).

I use the term analog to characterize all sorts of control mechanisms that represent physical analogies, even though the representation of numbers is not analog, i.e. in the form of physical quantities. Such mechanisms are determined by the construction of the machine and always run the same way, although sometimes parts, such as a pegged cylinder, are removable. In contrast to the following definition of digital control, each bit of the control medium, e.g. a pegged cylinder, directly controls a mechanism which corresponds to this bit, e.g. to play a single tone. Analog control sequences are a part of the construction of the machine and can be illustrated by drawings of the controlled machine, as shown in Figs. 1, 2, 3 and 5.19

Figure 1

The moving temple of Bacchus, an early automaton designed by Heron of Alexandria, in which a rope was wound around an axis with pegs.20

19 Rolf Todesco called machines semi-automata if their functionality can be fully described by drawings, in contrast to automata which need a symbolic description. R. Todesco, Technische Intelligenz oder Wie Ingenieure über Computer sprechen.

(Stuttgart-Bad Cannstatt: Fromman-Holzboog, 1992)

20 W. Walter, "Die gespeicherten Programme des Heron von Alexandria," Elektronische Rechenanlagen 15:3 (1973): 113–118.

Table 1:Use of the terms analog and digital to specify several aspects of computing devices

analog digital

application physical analogy to a given problem abstract method (algorithm) representation of

numbers

by physical quantities by numerals sequence control determined by the construction of the

machine which can only execute the

The notion of digital control mechanisms refers to a sequence of choices from a finite set of primitive functions, which can be arranged in arbitrary order. Such digital machines cannot be fully represented using diagrams.

They must be specified in a symbolic way, for example using a sequence of arbitrary symbols for the basic functions, in the order in which they are to be executed. I will call such machines program controlled. In the sequence of a program controlled machine, there are no independent functions corresponding to each bit of the control medium. All bits are interpreted as a common function. Table 1 shows a summary of the distinction between analog and digital.

According to the definitions given above, the automaton built by Heron of Alexandria (Fig. 1) did not execute a program, because there were no individual elementary functions involved, as is necessary for program control.

This automaton is better described as a physical analogy to the sacrificial ceremony for which it was designed.

Similar considerations can be applied to musical automata controlled by pegged cylinders, like the one shown in Fig. 2. The pegged cylinders enable the instrument concerned to play the desired melody as a sequence of single tones or combinations, called chords. Most of the combinations of peg positions correspond to disharmonies. In principle, it would be possible to describe all combinations of tones as a set of basic functions for a musical automaton, but in practice one would not do so.

The Jacquard loom (Fig. 3) is another example. The process of weaving does not depend on the cards that control the selection of the warp threads. The loom has only one state and always executes the same single function: raise a set of warp threads before bringing in the filling thread. Therefore the loom weaves a pattern corresponding to the holes in the cards. The cards can be considered an analogy to the weaving pattern and not a program.

Figure 3

The mechanism of a Jacquard loom, the cards on the right control the raising and lowering

of the warp threads22

The cylinders of most musical automata, like the sets of cards in the Jacquard loom, are interchangeable parts;

another melody can be played or another pattern woven quite easily. So the control sequence can be either an inherent part of the machine or put on an external medium. However, and this is my point here, pegged cylinders and Jacquard cards can be used for program control in other machines, but their use does not necessarily imply that the machines are program controlled.

21 Ibid.

22 Almut Bohnsack, Der Jacquard-Webstuhl (München, 1993).

5—

A Classification of Sequence and Program Control

In this section, I present different computational models that can be summarized in a classification scheme for program control.

Executing a Fixed Sequence

The machines described above are sequence controlled but they do not process any input. The output will always remain the same, corresponding directly to the sequence, which can be a part of the machine or on an external medium, as shown in Fig. 4. More complex mechanisms may also be controlled by both internal and external sequences.

Figure 4

The sequence S always produces the same output.

The sequence can be fixed by construction (left) or it may be an interchangeable part of the machine, e.g. the pegged cylinder of a musical automaton (right).

Using the Output as Input

The structure of Charles Babbage's Difference Engine23 clarifies another point. The calculation of the machine is controlled by cams fixed on disks, whose functions are similar to those of pegged cylinders (Fig. 5).

The Difference Engine was a special purpose machine and the cams implemented the method of finite

differences. However, in contrast to the mechanisms described previously, the Difference Engine's calculation depends on previous results, while the process of the musical automata or the Jacquard loom is fixed and the output is always exactly the same. The output of the Difference Engine is the input for the next step in the process of calculation.

23 See Allan G. Bromley, "The Evolution of Babbage's Calculating Engines," Annals of the History of Computing 9:2 (1987):

113–136.

There is no significant difference between program control without feed-back and analog sequence control, since the same output is always produced. For longer or more complex calculating processes, it is required that results already calculated be used again as input (Fig. 6). As long as the machine is unable to automatically feed the output back to the input, this must be done manually, as was done by human computers using desk

calculators.

A storage facility is needed for automatic reuse of previously calculated results. The Difference Engine, for example, has registers to store the intermediate results. The number of intermediate results needed is limited by

A storage facility is needed for automatic reuse of previously calculated results. The Difference Engine, for example, has registers to store the intermediate results. The number of intermediate results needed is limited by

Dans le document History of Computing (Page 48-60)