Trisha Shetty (Editor)

Plankalkül

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Paradigm
  
Procedural

Designed by
  
Konrad Zuse

First appeared
  
1948; 69 years ago (1948) – concept first published

Plankalkül ( [ˈplaːnkalkyːl], "Plan Calculus") is a programming language designed for engineering purposes by Konrad Zuse between 1942 and 1945. It was the first high-level (non-von Neumann) programming language to be designed for a computer.

Contents

"Kalkül" means formal system – the Hilbert-style deduction system is for example originally called "Hilbert-Kalkül", so Plankalkül means "formal system for planning".

History

Notes survive with scribblings about such a plan calculation dating back to 1941. In 1944 Zuse met with the German logician and philosopher Heinrich Scholz and they discussed Zuse's Plankalkül. In March 1945 Scholz personally expressed his deep appreciation for Zuse's utilization of the logical calculus. Plankalkül was not published at that time owing to a combination of factors such as conditions in World War II and postwar Germany and his efforts to commercialise the Z3 computer and its successors. By 1946, Zuse had written a book on the subject but this remained unpublished.

Only in 1948 Zuse published a paper about the Plankalkül in the "Archiv der Mathematik" but still did not attract much feedback – for a long time to come programming a computer would only be thought of as programming with machine code. In the same year Zuse introduced his programming language at the Annual Meeting of the GAMM.

The Plankalkül was eventually more comprehensively published in 1972 and the first compiler for it was implemented in 1975 in a dissertation by Joachim Hohmann. Other independent implementations followed in 1998 and then in 2000 by the Free University of Berlin.

Description

Plankalkül has drawn comparisons to APL and relational algebra. It includes assignment statements, subroutines, conditional statements, iteration, floating point arithmetic, arrays, hierarchical record structures, assertions, exception handling, and other advanced features such as goal-directed execution. The Plankalkül provides a data structure called generalized graph (verallgemeinerter Graph), which can be used to represent geometrical structures.

Plankalkül shared an idiosyncratic notation using multiple lines with Frege's Begriffsschrift of 1879 (dealing with mathematical logic).

Terminology

Zuse called a single program a Rechenplan (i.e. computation plan), and in 1944 he already envisioned a device that should read and then automatically translate a mathematical formulation of a program into machine readable punched film stock – a device which he called Planfertigungsgerät (i.e. plan construction device).

Example

The original notation was two dimensional. For a later implementation in the 1990s, a linear notation was developed.

The following example shows a program (in a linear transcription), which calculates the maximum of three variables by calling the function max3:

P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) → R0[:8.0] max(V0[:8.0],V1[:8.0]) → Z1[:8.0] max(Z1[:8.0],V2[:8.0]) → R0[:8.0] END P2 max (V0[:8.0],V1[:8.0]) → R0[:8.0] V0[:8.0] → Z1[:8.0] (Z1[:8.0] < V1[:8.0]) → V1[:8.0] → Z1[:8.0] Z1[:8.0] → R0[:8.0] END

Quotations

In a lecture in 1957 Zuse mentioned his hope that the Plankalkül "after some time as a Sleeping Beauty, will yet come to life."

Heinz Rutishauser, one of the founders of ALGOL:

The very first attempt to devise an algorithmic language was undertaken in 1948 by K. Zuse. His notation was quite general, but the proposal never attained the consideration it deserved.

References

Plankalkül Wikipedia