# Plan Kalkuel

Programming language devised by KonradZuse, arguably the first attempt at a high-level, algorithmic language, even though it was never implemented.

Brief Introduction:

Extensive information at http://www.zib.de/zuse/Inhalt/Texte/Thema/PK.html (mostly German).

There is a Java applet that implements a subset: http://www.zib.de/zuse/Inhalt/Programme/Plankalkuel/index.html

[From PlanKalkul]

From 1942-1945/46 Konrad Zuse developed ideas how his machines can be programmed in a powerful - more than only arithmetic calculations - way. He considered many problems of engineers and scientists, analyzed and described them, made dozens of examples, and then he formulated the Plankalkül. On the one side he used the powerful predicate logic, the boolean algebra as language constructs, on the other side he developed a mechanism to define powerful data structure beginning with the simple bit up to complicated hierarchical structures. In order to show, that the Plankalkül could solve the scientific and engineering problems, Konrad Zuse wrote dozens of example programs. One can find the sorting of lists, search strategies, relations between pairs of lists, etc. Konrad Zuse focussed on the logical problems that have to be solved with the computer. From my view there is no other work available at this time and before, where so many written programs applied to engineering problems can be found. The final version of the Plankalkül was finished in Hinterstein (Allgäu) in 1946/46.

As late as in 1972 /ZUSE72/ the Plankalkül was published by the GMD (Gesellschaft für Mathematik und Datenverarbeitung). The reason for the late publication was the effort Konrad Zuse needed for the Zuse KG from 1949-1964. The Plankalkül was a remarkable complete programming language for computers. Konrad Zuse used an unusual writing of the statements in his 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 the Plankalkül are:

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

Statements like V1 = V2 => R1. It 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 be applied on complicated data structures, too.

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

Conditional statements, but no ELSE statement.

Repetition of statements (loops).

Operations of predicate logic and the boolean algebra.

Powerful operations on lists and pairs of lists.

No recursion.

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

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

Arithmetic exception handling.

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

Assertion like in EIFFEL and MODULA-2.

Complicated expressions with parentheses and nesting.

A good introduction of the Plankalkül can be found in Sebesta /SEBE96/ and Giloi /GILO97/. However, after 1949 Konrad Zuse had no more time for applications of the Plankalkül and other programming languages. In 1949 he founded the company Zuse KG.

"The very first attempt to devise an algorithmic language...but the proposal never attained the consideration it deserved."

-- Heinz Rutishauser (1967)

EditText of this page (last edited May 17, 2009) or FindPage with title or text search