View Full Version : The Life and Work of Konrad Zuse (by Horst Zuse)

05-03-2007, 03:02 PM
Today, throughout the world, Konrad Zuse is almost unanimously accepted as the inventor and creator of the first freely-programmable computer with a binary floating point and switching/circuit system, which really worked. This machine - called the Z3 - was completed in his small workshop in Berlin-Kreuzberg in 1941.

Konrad Zuse first started to consider the logical and technical principles of computers as far back as 1934 when he still was a student. He also created the world's first programming language (1942-1945/46), which he called the Plankalkül.

In the past, scientists and engineers had many discussions about the components of a computer and who can be accepted as the true inventor of the computer. At the International Conference on History of Computing (August 14-18, 1998), there was a panel session in which scientists discussed the question: Who is the inventor of the computer? After a discussion lasting one and a half hours, the great majority denoted Konrad Zuse as the most admired computer pioneer.

This article will give an extended view on Konrad Zuse's work building computers. Although hundreds of articles were written about Konrad Zuse and his computers, the contents of these articles do not differ very much. For this reason, we will give a new insight in his computers and will show unknown facts and pictures of his computer developments and the architecture of his machines. The paper is structured as follows: In Part 1 we consider some aspects of Konrad Zuse before 1934, in Part 2 the first ideas on computing of Konrad Zuse are discussed. In Part 3 we discuss the architecture of his Z1 machine in detail, while the Z2 and Z3 computers are discussed in Part 4. In Part 5 we describe the development of the Z4 from 1942 to 1945 in Berlin and the slightly modified architecture of the Z4 for the ETH-Zürich (1950). In Part 6 Konrad Zuse's Plankalkül is described, and in Part 7 the very innovative Zuse KG is presented, which produced from 1949-1969 more than 250 computers of a value of 100 Million DM. In Part 8 we introduce Konrad Zuse's paintings and his last project, the Helix-Tower. In Part 9 we discuss other early computers in USA and UK, in Part 10 we compare the John von Neumann computer with the computers Z1-Z4 of Konrad Zuse. We close In Part 11 with some conclusions, followed by references to other literature in the Bibliography.

05-03-2007, 03:04 PM
Konrad Zuse was born in in Berlin on June 22, 1910. No ideas of computers or related problems can be found in his records prior to 1934. It is unquestionable that he was a creative student at school, he built cranes and made a lot of paintings. One example of his early paintings is a cartoon of the Schützenfest (riflemen's meeting) in Hoyerswerda from 1926

Konrad Zuse made his school leaving examination in 1928 in Hoyerswerda / Saxonia. During his study he changed his directions three times. Sometimes he said that he did not know what to study. Very often he said that he fluctuated between becoming an engineer and an artist.Finally he decided to study civil engineering, was awarded his diploma in 1935, and obtained a position with the Henschel Flugzeugwerke (Henschel Aviation Company) in Berlin in 1935. At this time he was not familiar with relays or even electrical engineering.

He first started thinking about computers as early as 1934. This was prompted by the many calculations he had to perform as a civil engineer, Today it is clear to me that he really hated performing these calculations and he wanted to make things easier for engineers and scientists.

This is a little similar to Charles Babbage, who said in 1812: I wish to God these calculations had been performed by steam. However, he did not become aware of Babbage's work until 1945/46.

05-03-2007, 03:07 PM
In 1934, driven by his dislike of the time-consuming calculations he had to perform as a civil engineer, Konrad Zuse began to formulate his first ideas on computing. His feeling was that such stupid calculations should be performed by machines and not by human beings. The first question he posed in 1934 was:

What mathematical problems should a computing machine solve?

His answer was the following definition of computing (1936):

To build new specifications from given specifications by a prescription.

In the year 1943 he extended the definition to:

Computing is the deviation of result specifications to any specifications by a prescription.

From these definitions, Konrad Zuse defined the logical architecture of his Z1, Z2, Z3, and Z4 computers From the beginning it was clear for him that his computers should be freely programmable, which means that they should be able to read an arbitrary meaningful sequence of instructions from a punch tape. It was also clear to him that the machines should work in the binary number system, because he wanted to construct his computers using binary switching elements. Not only should the numbers be represented in a binary form, but the whole logic of the machine should work using a binary switching mechanism (0-1-principle).

He planned a high performance binary floating point unit in the semi-logarithmic representation, which would allow him to calculate very small and very big numbers with sufficient precision.

He implemented a high performance adder with a one-step carry-ahead and precise arithmetic exceptions handling.

He developed a memory in which each cell could be addressed by the punch tape and could store arbitrary data.

Finally, he constructed a control unit that controlled the whole machine, and implemented input and output devices from the binary to the decimal number system and vice versa. In Part 3 we'll start to take a closer look at these machines.

05-03-2007, 03:10 PM
In 1936, my father finished the logical plan for his first computer, the V1 (he later changed the name to Z1 in order to avoid any connection with the V1 rocket). He had studied the available mechanical calculating machines of that time, all of which were based on the decimal number system. However, he never planned to build a modified or extended decimal machine, because he wanted to build a new type of computer for universal scientific applications.

From 1936 to 1938, my father constructed the Z1, which worked on the principles discussed in Part 2. In many ways the Z1 was a remarkable machine. In addition to a 64-word memory (where each word contained 22 bits), this machine had all of the components we previously discussed in Part 2. Thus, the Z1 was the first freely programmable, binary based machine in the world!

The Z1 did not use relays, but instead consisted completely of thin metal sheets, which he and his friends produced using a jigsaw. The only one electrical unit was an electrical engine, which was used to provide a clock frequency of one Hertz.

The Z1 was programmed via a punch tape and a punch tape reader. There was a clear separation between the punch tape reader, the control unit (which supervised the whole machine and the execution of the instructions), the arithmetic unit (with registers R1 and R2), the memory, and the input/output devices.

In 1986, Konrad Zuse decided to rebuild the Z1, because the architecture of the Z1 was almost identical to that of his Z3 computer (discussed below), which was unfortunately destroyed in the Second World War. Thus, the saying "War is the father of everything," is not true in the case of the invention of the computer.

Most of the components are self-explanatory. The memory, which consisted of 64 words, each containing 22 bits, was formed from three blocks. The first block contained 64 words for the exponents and signs (8 bits for each word). The other two blocks each contained 32 words for the mantissa (14 bits for each word). The selection unit interpreted the address for the memory by the control unit. The arithmetic unit was an adder, and all of the operations were reduced to additions or subtractions (adding and subtracting are very similar operations).

The registers R1 and R2 were two words, each containing 22 bits. The two circles on the left-hand side (on the clock generator block) are cranks for executing a clock cycle manually, where the upper one is for the memory and the lower one for the control and arithmetic unit.

05-03-2007, 03:15 PM
The Z2 Computer
Unsatisfied with the reliability of the binary switching metal sheets used in the Z1, Konrad Zuse next constructed the Z2 computer. The Z2 used the same type of mechanical memory as the Z1, but he used 800 old relays from phone companies to construct the arithmetic and control units. The Z2’s arithmetic unit consisted of a 16-bit fixed-point engine, because he wanted to test the reliability of relays for arithmetic calculations. Unfortunately, photos and plans of the Z2 were destroyed by allied air raids during the war. However, the Z2 served its purpose, because it convinced my father that relays were indeed reliable, and he subsequently built his Z3 computer completely out of relays (600 for the arithmetic unit and 1,800 for the memory and control units).

The Z3 Computer (1939-1941)
Helped by friends and with some small support from the government, Konrad Zuse constructed his Z3 machine from 1939 to 1941 in the Methfesselstraße 7 in Berlin-Kreuzberg. He wanted to use the Z3 to demonstrate that it was possible to build a reliable, freely programmable computer based on a binary floating point number and switching system, which could be used for very complicated arithmetic calculations. For reliability reasons he used relays for the entire machine.

He original design of the Z3 . Unfortunately no photos of the original Z3 exist, because all documents and photographs were destroyed by allied air raids during the Second World War.

Konrad Zuse rebuilt the Z3 at his Zuse KG(3) company between 1960 and 1961 in order to demonstrate the performance of this machine to justify his patents and to show the world his creation (and also to demonstrate the machine for advertising purposes). Like the original machine, the rebuilt Z3 is completely constructed from relays. The Z3 is about five meters long, two meters high, and 80cm wide.

It is now undisputed that the Z3 was the first reliable, freely programmable, working computer in the world based on a binary floating-point number and switching system. In 1941, the Z3 contained almost all of the features of a modern computer as defined by John von Neumann and his colleagues in 1946 [BURK46]. The only exception was the ability to store the program in the memory together with the data. Konrad Zuse did not implement this feature in the Z3, because his 64-word memory was too small to support this mode of operation. Due to the fact that he wanted to calculate thousands of instructions in a meaningful order, he only used the memory to store values or numbers.

The block structure of the Z3 is very similar to a modern computer. The Z3 consisted of separate units, such as a punch tape reader, control unit, floating-point arithmetic unit, and input/output devices. With respect to this theme, Burks et al. [BURK46] wrote as late as 1946, "In as much as the completed device will be a general-purpose computing machine it should contain main organs relating to arithmetic, memory-storage, control and connection with the human operator. It is intended that the machine be fully automatic in character, i.e. independent of the human operator after the computation starts."

It is important to note that the Z3 fully met Burks’ requirements. Also, the Z3 supported a special operating mode, because the Lu instruction stopped the program and activated the input device. The human operator could check, among other things, the contents of the Registers R1 and R2 in the arithmetic unit, he or she could perform intermediate calculations using the Registers R1 and R2, then the operator could continue running the program.

05-05-2007, 05:40 PM
From 1942-1945/46 (at the same time as he was developing the Z4 computer, as discussed in Part 6 of this article), Konrad Zuse was also developing ideas as to how his machines could be programmed in a very powerful way (that is, more powerful than arithmetic calculations only).

He considered many of the problems that engineers and scientists needed to solve, analyzed and described these problems, and created dozens of examples. Based on these evaluations, it became clear to my father that he required a sophisticated technique for formulating tasks that the computer should solve. For example, one of his ideas was related to performing the calculations used to build bridges. In this case he believed that the input data for a bridge-building program should be the type of bridge required and the conditions of the bridge related to the material and the environment. Based on this, the computer should then propose a reliable bridge.

Zuse denoted such machines as Logistische Maschinen (logistic machines), as opposed to algebraic machines such as the Z1, Z2, Z3 (and the Z4 as described in Part 6), which were only appropriate for numerical calculations. In order to provide this ability to capture the difficult problems of engineers in computer programs, Konrad Zuse formulated the remarkably sophisticated programming language Plankalkül. In addition to pure statements for number calculations, Zuse also used rules of mathematical logic.

On the one hand he used the powerful predicate logic Boolean algebra as language constructs. On the other hand he developed a mechanism to define powerful data structures, commencing with the simple bit (binary digit) and working up to complicated hierarchical structures. In order to demonstrate that the Plankalkül language could be used to solve scientific and engineering problems, Konrad Zuse wrote dozens of example programs. In his notes one can find the sorting of lists, search strategies, relations between pairs of lists, etc.

Konrad Zuse focussed on the types of logical problems that have to be solved with the computer. From my point of view there is no other work available (at or before this time) where so many written programs applied to engineering problems can be found. The final version of Plankalkül was finished in Hinterstein (Allgäu) in 1946/46, but it wasn’t until 1972 [ZUSE72] that Plankalkül was finally published by the GMD (Gesellschaft für Mathematik und Datenverarbeitung). The reason for such a late publication was the effort Konrad Zuse needed for the Zuse KG company from 1949-1964, as discussed in Part 7 of this article.

Konrad Zuse used an unusual technique for the statements in Plankalkül. Each data item was denoted with V (variable), C (constant), Z (intermediate result), or R (result), an integer number to mark them, and a powerful notation was used to denote the data structure of the variable. The highlights of Plankalkül are:

>> Introduction of the assignment operation, for example: V1 + V2 => R1. The sign => was introduced by Rutishauser to the ALGOL 60 GAMM-committee, but the committee did not accept it.

>> Statements like V1 = V2 => R1. This means: Compare the variables V1 and V2: If they are identical then assign the value true to R1, otherwise assign the value false. Such operations could also be applied on complicated data structures.

>> Programming plans, calling sub-programs, and different stop criteria.

>> Conditional statements (but no ELSE statement).

>> Repetition of statements (loops).

>> Operations of predicate logic and Boolean algebra.

>> Powerful operations on lists and pairs of lists.

>> No recursion.

>> Data types like: floating point, fixed point, complex numbers.

>> Arrays, records, hierarchical data structures, list of pairs.

>> Arithmetic exception handling.

>> Applications to play chess are described on more than 60 pages.

>> Assertion as was subsequently used in the EIFFEL and MODULA-2 languages.

>> Complicated expressions with parentheses and nesting.

A good introduction to Plankalkül can be found in [SEBE96]. However, after 1949 Konrad Zuse had no more time to consider applications for Plankalkül and other programming languages, because at this time he founded the Zuse KG company. We will return to consider the Zuse KG in Part 7, but first we must return to 1940 …..

05-05-2007, 05:42 PM
In 1940, Konrad Zuse formulated a vision, which was to use computers to release the spirits of humans from the stupid task of calculations. In order to build his computers, Konrad Zuse founded a company called the Zuse Apparatebau in Berlin on April 1, 1940.

A Zuse logo
The Zuse Apparatebau was a small company located in the Methfesselstraße 7 and 10 in Berlin-Kreuzberg. By 1941, Konrad Zuse was sure that the general problems of building powerful computers were solved. He planned the Z4 to be a prototype of computers for engineering bureaus and scientific institutes. Based on his experiences with the Z1 to Z3 machines, and knowing the problems he wanted to solve for the engineers, he realized that the Z4 needed much more memory than in the previous machines.

For this reason, he compared the advantages and disadvantages of a memory built using relays to a memory constructed from thin metal sheets (like the Z1 and Z2). His conclusion was that constructing the memory from metal sheets was much less expensive than building a relay memory. It was clear to him that a memory of one thousand 32-bit words consisting of relays would be too big, because he would need more than 1000 x 32 = 32,000 relays. His patented mechanical memory (1936) worked very reliably, and for 1000 words he would not need more than one cubic meter of space. Konrad Zuse also estimated the costs of one 32-bit word of his mechanical memory as being 5 RM (Reichmarks), which equated to approximately $2.50 US in 1942.

By 1945 the Zuse Apparatebau had about 20 employees. Unfortunately, at this time the building and the company were completely destroyed by air raids,. To this day, the plot of land in the Methfesselstraße 7 is a bombed site.

The Z4 Computer
The goal of the Z4, which was developed between 1942 and 1945, was to build the prototype for a machine that was intended to be produced in the thousands. Unfortunately, the war destroyed my father’s hope, which was that his machines should support the work of engineers of the time.

It took more than four years to build the Z4, which ended up being much smaller than was originally planned. In the case of the Z4, Konrad Zuse wanted to implement a sub-program principle. For this reason he planned six punch tape readers and two punch tape writers. However, lack of materials, the almost daily air raids, and the increasing difficulty of living in Berlin (which worsened daily) made it impossible to finish the Z4 completely.

05-05-2007, 05:46 PM
In 1949 Konrad Zuse founded the Zuse KG with five employees in a small village of about 800 inhabitants called Neukirchen (Kreis Hünfeld, 120 km north of Frankfurt). (Note that "KG" means a special type of company in the form of a limited partnership. From 1949 to 1947 the partners were: Alfred Eckardt, Harro Stucken, and Konrad Zuse. From 1957 the partners were Konrad Zuse and his wife, and from 1964 onwards the Zuse KG had a number of owners as described later in this section.) The Zuse KG was the first computer company in Germany. The building used by the Zuse KG in Neukirchen was formerly a post relay station.

The first task of the Zuse KG in 1949 was to restore the Z4 for delivery to the ETH-Zürich. The Z4 was moved from Hopferau to Neukirchen (a journey of about 500 km) and was enhanced with the following features:

>> Implementing a conditional branch capability.

>> Adding instructions for printing the results on a Mercedes typewriter or a punch tape.

>> Storing numbers on the punch tape in order to transfer them into the Z4’s memory.

>> Writing results on a punch tape.

>> Improving the facing of the machine, for example: adding sheathing for the relay cupboards.

>> Separating the service unit and the relay cupboards.

The Z4 was delivered to the ETH Zürich on July 11, 1950. This was a great day for the ETH and Switzerland as was noted by Speiser. Only half a year after the inauguration of the Z4 at the ETH, Rutishauser could report about the success of using the machine.

The restored Z4 consisted of about ten relay cupboards containing 2,200 standard relays, plus 21 stepwise relays for the micro-sequencer. The Z4’s memory was a mechanical one with 64 words, each containing 32 bits. The structure of the mechanical memory was similar to the memory of the Z1. However, while the Z1 had a word length of 22 bits, the word length of the Z4 was extended to 32 bits. Each word was directly addressable by the instructions on the punch tape. This mechanical memory was a unique feature. In fact when the scientists from the ETH-Zürich saw this memory for the first time in 1948 in Hopferau, they reported to Professor Stiefel that they had never seen such an extraordinary construction before. They also reported to Prof. Stiefel, that they had doubts that this memory would ever work reliably.

As Speiser [SPEI98] wrote about the operation of the Z4:

The machine was moved to ETH in September 1950, and, after a relatively short period, assumed operation. The Z4 proved to be reliable, and the frequency of breakdowns was well within the limits of what was compatible with satisfactory operation. Quite soon, the machine could be left running unattended overnight, which was quite unusual at this time. Zuse himself was understandable proud of this achievement. He was a man with a good sense of humor, and he once stated that the rattling of the relays of the Z4 was the only interesting thing in Zürich’s nightlife. To appreciate the conditions under which we were working, I repeat that the machine’s power was 1000 operations per hour. For operational reasons, problems that lasted more than 100 hours could not be considered. Thus, 100 000 operations and 64 places of memory were the boundary conditions that were set. In the light of today’s life where the term Gigaflops is an every-day word, and when memory is measured in gigabytes, it seems hard to grasp that useful work of any kind could be done with the Z4. And yet, at that time, at least on the European continent, there was no mathematical institute which had access to computing power comparable to ours.

Work with the Z4 was interactive in the true sense of the word. Of course, the term "interactive computing" did not exist at that time, for the simple reason that the situation when computing becomes non-interactive was never encountered. The mathematician was in the same time programmer and operator, and he could continually follow the running of his program. Intermediate results were printed out and could be inspected, the program could be modified if necessary. But the signals that the programmer received from the computer were not only optical, they were also acoustical. The clicking of the tape reader was an indication of how fast the program proceeded, or whether it had got stuck; and the rattling of the relays signaled what kind of operation was in process. This was a great help in spotting errors, both in hardware and in the programs.

In fact the memory, consisting of thousands of metal sheets, screws and pins, was the most reliable feature of the Z4. The Z4 worked very reliably and also worked during the night without supervision. Speiser, who was responsible for the maintenance of the Z4 also wrote [SPEI98]:

Although, as stated, reliability was quite good, I nevertheless remember many hours of searching for mistakes, which often had their roots in the malfunction of relay contacts due to dust. We also discovered several cold soldering joints that gradually failed to conduct; finding them was particularly bothersome, because they caused mistakes that were often intermittent. On two occasions I had to disassemble parts of the memory. This meant removing about 1000 pins and placing them back again. There were two kinds of pins, their lengths were 2.5 and 2.6 mm. If due to a mistake I mixed up one single pin, the entire memory was blocked, a very frustrating experience.

05-05-2007, 05:47 PM
After 1964, the Zuse KG was no longer owned and controlled by Konrad Zuse, although he did hold a consultant contract with the Siemens AG until 1969. It was a heavy blow for my father to loose his company, but there was no other way at this time. From 1949 to 1964 he had made every effort to keep the company as his own, but in 1964 he had to give up, because the active debts were too high.

He also had another problem, because in 1964 no decision had yet been made on the patents he had applied for with his Z3 computer. In 1967 a decision was made by the German patent court and Konrad Zuse lost his 26 year fight about the invention of the Z3 with all its new features [ROJA98]. Konrad Zuse's early computers consisted of well known structural components, namely relays. Using these relays he constructed the Z3 computer, but the (patent) justices could not follow the arguments that well known components could be combined to form a really new machine. When Konrad Zuse left the Zuse KG in 1969 he was 59 years old.

We will now discuss some of Konrad Zuse's major activities following 1964/69, which were his autobiography, his (oil) paintings, the computing universe, the reconstruction of the Z1 (as discussed earlier in this article), and the Helix-Tower. We will not consider his works on self-reproducing systems and Petri-Nets, because from my view his contributions to both of these fields were not particularly significant. Also, we will not discuss the parallel computer, which he designed (but didn't build) in 1958, because this would be beyond the scope of this article. My father received many awards for his work on computers, some of which we would like to mention here.

Some of Konrad Zuse's Awards
In 1956, Konrad Zuse received the Dr.-Ing. e.h. for his achievements in the area of computing from the Technical University of Berlin. In 1965, he was given the Werner von Siemens Award in Germany, which is the most prestigious technical award in Germany. In 1965 Konrad Zuse received the Harry Goode Memorial Award together with Stibitz in Las Vegas (Stibitz was also a pioneer of binary floating point arithmetic around 1944/45).

Amongst many other awards, Konrad Zuse was presented with a dozen honorary Doctorships (including those from Iceland, Switzerland, and East Germany (Dresden)). two honorary Professorships (from Göttingen in Germany and Stettin in Poland). Furthermore, about twenty streets in different cities are named Konrad Zuse Straße, two schools (in Hünfeld and Hoyerswerda) carry his name and he was made an honorary citizen in both Hünfeld and Hoyerswerda. There is also the Konrad Zuse Zentrum für Informationstechnik (Center for Scientific Computing) in Berlin, and in September 1999 he will be made a fellow of the Computer History Center in Mountain View, California, USA.

After leaving the Zuse KG, Konrad Zuse concentrated on his autobiography. As late as 1970, the Publisher Moderne Industrie, published the first edition of his autobiography. And, as late as 1983, the Springer publisher took over the autobiography. In 1993, the Springer Publisher offered an English translation of the autobiography [ZUSE93]. Unfortunately, it took a long time for scientists to accept and recognize Konrad Zuse's work. After 1975 he found friends who supported his unique contributions, which later led to the reconstruction of the Z1 in 1986.

Computing Universe
In [ZUSE69] Konrad Zuse postulated that the universe consists of millions of parallel working micro-computers. However, it would be beyond the scope of this article to take a deeper look into this.

Konrad Zuse's Paintings
One of Konrad Zuse's major activities after 1964 (and especially after 1969) was painting. From 1964 to 1970 he used the pseudonym Kuno See in order to avoid any association with the Zuse KG. The following pictures show two major exhibitions of Konrad Zuse's oil paintings.

During his life, Konrad Zuse painted some hundred oil paintings. He held about three dozen exhibitions, and he also sold the paintings.

05-05-2007, 05:51 PM
In order to assess the work of Konrad Zuse, we now have to compare his developments with other early machines that were significant in the history of computing.

>> Charles Babbage (1782-1871) proposed two machines, the Difference machine (1823) and the Analytical Machine (1834). These machines were never finished. This was not because of design errors, but was instead the problem of precision mechanics. Both machines were based on a decimal number system of 27 digits. Babbage formulated the first ideas of programming. Konrad Zuse, who did not come aware of Babbage’s work until 1945-46, independently developed similar ideas of programming, but extended this with his Plankalkül language.

>> The ABC machine invented by Atanasoff, finished in 1942, was a special purpose computer and was not freely programmable. The instructions to the machine were given by buttons. The ABC can be seen as the prototype of a parallel computer with a binary fixed point arithmetic unit. The ABC was only constructed for the Gauß-Elimination Method. The machine consisted of 30 processors for the subtraction of vectors of integer numbers. It was not a machine for universal arithmetic calculations. In 1958, Konrad Zuse designed a parallel computer, which was never built. He called it the Feldrechenmaschine (field calculation machine) consisting of 50 processors.

>> The MARK I of Aiken, finished in 1944, was freely programmable, but it did not contain the concept of the separation of control unit, memory, arithmetic unit and input and output devices. It also did not use floating point arithmetic, but a decimal arithmetic unit. This machine weighed approximately 35 tons!

>> The ENIAC, designed by Eckert and Mauchly and finished around 1945/46, consisted of about 18000 vacuum tubes, was not freely programmable, and worked with a decimal arithmetic unit. The program had to be plugged with cables. However, this was the first big general-purpose electronic computer (the ABC mentioned above was a special-purpose machine).

>> From 1943-1945, ten COLOSSUS computers were built in UK in order to analyze the German codes used in World War II. The machines, which were not freely programmable and were developed for special tasks, were constructed from vacuum tubes and very fast optical punch tape readers. In 1946 Churchill gave the order to destroy the ten built machines.

>> In 1946, John von Neumann [NEUM45], [BURK46] postulated the architecture of a modern stored program computer. He required, among other things, the separation of the control unit, the memory (addressable), the arithmetic unit (Floating point was discussed) and the input and output devices. However, only a few people know, that this architecture had already been postulated in 1936 by Konrad Zuse [ZUSE36], [ZUSE37a] and implemented by him in 1938 with the Z1.
The architectural elegance of Konrad Zuse's machines is now highly appreciated by computer scientists. Konrad Zuse was a master at leaving out surplus equipment (using a minimal design principle). The architecture of Konrad Zuse’s machines is very similar to modern computers (excluding the technical realization/implementation). In the next section we will look at the concept of the stored program computer and Konrad Zuse's ideas related to this.

05-05-2007, 05:52 PM
There is no question that there were many other scientists who made great contributions to the development of the computer. We now will consider Konrad Zuse's ideas related to the stored program computer. It is correct, that Konrad Zuse's computers Z1, Z2, Z3, and Z4 were not stored program computers. This also holds for the computers ABC, Mark I, COLOSSUS and the ENIAC.

However, from our point of view it is very questionable to say that John von Neumann and his colleagues introduced the concept of the stored program computer [BURK46]. We will not discuss whether it was John von Neumann himself of his colleagues who were more involved in this idea [BAUE98], but we want to carefully examine Konrad Zuse's articles and statements related to the stored program computer.

Konrad Zuse did not create or use the term stored program computer per se. However, we can find some strong indicators for the concept of the stored program computer in his work. In [ZUSE99a] we summarize all of Konrad Zuse's arguments and statements related to the concept of the stored program computer. We now will cite one of his articles of from 1936 [ZUSE36], in which he wrote:

Man verbindet die Rechenvorrichtung über ein Wählwerk mit einem Speicherwerk, das je Zelle eine Zahl aufnehmen kann. Das Wählwerk hat den Zweck, die erforderliche Speicherzelle mit der Rechenvorrichtung zu verbinden. sei es auf elektrischen oder mechanischen Wege, um entweder die gespeicherte Zahl zu einer Rechenoperation zu verwenden, oder um in der Zelle eine Zahl zu speichern. Das Speicherwerk dient zur Aufnahme der Ausgangswerte und der im Verlauf der Rechnung auftretenden Zahlen.

Translation: The arithmetic unit has to be connected by a selection unit with the memory, which can store a number for every cell. The purpose of the selection unit is to connect the required cell of the memory with the arithmetic unit in an electrical or mechanical way, in order to use the stored number of a calculating operation or to store the number in a cell. The memory stores the initial numbers of the calculation and the created numbers during the calculation.

Auch der Rechenplan läßt sich speichern, wobei die Befehle im Takt der Rechnung den Steuervorrichtungen zugeführt werden. Die Rechenpläne lassen sich entsprechend in fester Form speichern, falls die Maschine oft dieselbe Rechnung ausführen soll. Alle diese Abwandlungen fallen unter das Grundprinzip.

Translation: The program itself can be stored too, where the instructions are delivered to the control unit by the impulse generator of the machine. The programs can be stored in a rigid form, if the machine has to calculate the same program very often. All modifications are based on the basic principle.

The most important of Konrad Zuse's statements related to storing programs in the machine's memory can be found in [ZUSE36]:

Bei der vorliegenden Erfindung werden diese Schaltglieder zu einem Speicherwerk zusammengesetzt, mit dem beliebige Angaben, z.B. Zahlen, gespeichert werden können. Solche Vorrichtungen spielen besonders bei Rechenmaschinen eine Rolle. Sie können aber auch zur Speicherung anderer Angaben, z.B. von Befehlen an Arbeitsmaschinen (Schaltspeicherung, von Buchstabenkombinationen (z.B. Telegrammspeicherung), von Buchstabenverschlüsselungen (Chiffriermaschinen) od. dgl. benutzt werden.

Translation: In the presented invention these (author: mechanical) switches are combined to a sequential logical system, where arbitrary specifications (Angaben), for example numbers can be stored. Such features especially in computing machines play a role. They also can be used for the storage of other specifications, for example of instructions for working machines (switch storage), of combinations of letters (telegraphic storage), of alphabetic coding (cipher machines), or similar things.

We agree with Randall [RAND73], p 350, where we find the following quote in the introduction to the chapter titled: The Stored Program Electronic Computers:

In fact the idea of a stored program has little attraction when a machine has only a slow mechanical internal memory. Thus it is not surprising that Zuse, whose 1936 [ZUSE36] paper, reprinted earlier, contains a comparatively clear reference to the possibility of a stored program, does not seem to have persuaded the idea any further.

05-05-2007, 05:54 PM
As Konrad Zuse's oldest son, I have tried to present his work as a mixture of new technical aspects of his machines along with other themes, such as the concepts of the stored program computer, pipelined computers, the Zuse KG company, his paintings, and so forth.

Konrad Zuse founded the Zuse KG in order to build computers for engineers and scientists. Unfortunately the role of this company from 1949 in post-war Germany is still neglected and not well known. In particular, Konrad Zuse's achievements during this time are not well understood or accepted to this today.

It is remarkable to me that my father considered the problem of programming computers with his high level language Plankalkül so early in the evolution of computers. There is no question that the modern computer needed many brilliant scientists to create it. However, considering Konrad Zuse's computers in detail shows an amazing similarity with today's machines. In 1998, a journalist in Hoyerswerda in Germany asked me whether the acknowledgement of my father’s work is justified. I replied that I also am a computer scientist and that I therefore have to be very critical and unbiased with respect to my father's work, but that I have tremendous respect for his achievements.

I will summarize these achievements based on the statements of Speiser [SPEI98] and Bauer [ROJA98a]. Both scientists say that Konrad Zuse must be credited with the following fundamental inventions in the area of computing development, where most of these inventions were implemented in the Z1 (1938), Z3 (1941), and Z4 (1945), with the exception of the Plankalkül:

>> The use of the binary number system for numbers and the circuits.

>> The use of floating point numbers, along with the algorithms for the translation between binary and decimal and vice versa.

>> An algorithm for the non-restoring calculation of the square-root. With this algorithm, the square-root can be calculated with n steps, if n is the number of digits. This technique was not known in the US in 1949.

>> The carry-look ahead circuit for the addition operation.

>> Look-Ahead: The program is read two instructions in advance, and it is tested to see whether memory instructions can be performed ahead of time.

>> Pseudo-memory: In case the look-ahead mechanism finds that a number that is to be restored is needed again within the next two instructions, the number is placed in a register of mechanical contacts where it is available with no access time. For this purpose, the memory has two registers of reading contacts.

>> Special values (Sonderwerte): If a result exceeds the capacity of the arithmetic unit, it is designed as Sonderwert. This principle guarantees that the machine always calculates correctly.

>> The most unusual feature was undoubtedly the mechanical binary cells that made up the memory. The memory has 64 words with 32 bits (Z1 and Z4). These devices were completely different from mechanisms in contemporary cash registers or desk-top calculators. The elements could be used not only for storage, but also for calculation, for example for address coding. A relay memory would have required about 2500 relays, which would have more than doubled the size and the weight of the Z4 computer.

>> The Plankalkül as the world's first complete high-level language in 1945/46 (final edition).
All of these ideas were Konrad Zuse's personal achievements. In one or two cases he was perhaps not the first inventor, but he certainly had no knowledge of work being performed elsewhere. Until 1950 he lived in complete isolation from the world outside Germany. I think that Giloi [GILO97] writes very correctly: Through Brian Randell’s book [RAND73], an English translation of Zuse’s first patent application of 1936 [ZUSE36] has become more widely known, proving that Zuse had already developed many of the major concepts of the digital computer years before John von Neumann, Arthur Burks, and Herman Goldstine wrote their famous report [BURK46].

In conclusion, I hope that this article will help scientists, students, and other interested persons, especially in US and Canada, to better understand Konrad Zuse's contributions to computing.