Plankalkül (German pronunciation: [ˈplaːnkalkyːl]) is a programming language designed for engineering purposes by Konrad Zuse between 1942 and 1945. It was the first high-level programming language to be designed for a computer. Zuse never implemented Plankalkül on any of his Z-series machines. Kalkül (from Latin calculus) is the German term for a formal system—as in Hilbert-Kalkül, the original name for the Hilbert-style deduction system—so Plankalkül refers to a formal system for planning.
History of programming In the domain of creating computing machines, Zuse was self-taught, and developed them without knowledge about other mechanical computing machines that existed already – although later on, building the Z3, being inspired by Hilbert's and Ackermann's book on elementary mathematical logic (see Principles of Mathematical Logic). To describe logical circuits, Zuse invented his own diagram and notation system, which he called "combinatorics of conditionals" (German: Bedingungskombinatorik). After finishing the Z1 in 1938, Zuse discovered that the calculus he had independently devised already existed and was known as propositional calculus. What Zuse had in mind needed to be much more powerful. Propositional calculus is not Turing-complete and is not able to describe even simple arithmetic calculations. In May 1939, he described his plans for the development of what would become Plankalkül. He wrote the following in his notebook:
While working on his doctoral dissertation, Zuse developed the first known formal system of algorithm notation capable of handling branches and loops. In 1942 he began writing a chess program in Plankalkül. In 1944, Zuse met with the German logician and philosopher Heinrich Scholz, who expressed appreciation for Zuse's utilization of logical calculus. In 1945, Zuse described Plankalkül in an unpublished book. The collapse of Nazi Germany prevented him from submitting his manuscript. At that time the only two working computers in the world were ENIAC and Harvard Mark I, neither of which used a compiler, and ENIAC needed to be reprogrammed for each task by changing how the wires were connected. Although most of his computers were destroyed by Allied bombs, Zuse was able to rescue one machine, the Z4, and move it to the Alpine village of Hinterstein, part of Bad Hindelang.
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. Unable to continue building computers – which was also forbidden by the Allied Powers – Zuse devoted his time to the development of a higher-level programming model and language. In 1948, he published a paper in the Archiv der Mathematik and presented at the Annual Meeting of the GAMM. His work failed to attract much attention. In the winter semester of 1948/49, the German logician Wilhelm Britzelmayr, who at that time was Adjunct Professor of Formal Logic at LMU Munich, let Konrad Zuse lecture on applied logic and his formal system for planning, i.e. the Plankalkül in his colloquium. In a 1957 lecture, Zuse expressed his hope that Plankalkül, "after some time as a Sleeping Beauty, will yet come to life." He expressed disappointment that the designers of ALGOL 58 never acknowledged the influence of Plankalkül on their own work. Plankalkül was republished with commentary in 1972. The first compiler for Plankalkül was implemented by Joachim Hohmann in his 1975 dissertation. Other independent implementations followed in 1998 and 2000 at the Free University of Berlin.
Description Plankalkül has drawn comparisons to the language APL, and to 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, backtracking from a desired solution to construct a way to reach the final product. The Plankalkül provides a data structure called generalized graph (verallgemeinerter Graph), which can be used to represent geometrical structures. Many features of the Plankalkül reappear in later programming languages; an exception is its idiosyncratic two-dimensional notation using multiple lines. Some features of the Plankalkül:
only local variables functions do not support recursion only supports call by value composite types are arrays and tuples contains conditional expressions contains a for loop and a while loop no goto
… excerpt ends here. Continue reading the full article.



