# Plankalkül

The world's first complete high-level language was designed in 1940s (probably between 1941 and 1945, but the concept first published in 1948), by the german computer pioneer Konrad Zuse, the creator of the first relay computer.

From 1941-1946 (at the same time he developed his Z4 computer), Konrad Zuse developed ideas as to how his machines could be programmed in a very powerful way. The language Plankalkül was initially described in Zuse's planned Ph.D. dissertation in 1943, later developed in his 1945 (also unpublished, it was still wartime) work "Plankalkül. Theorie del angewandten Logistik.", and finally reached the public in a 1948 article (but still did not attract much feedback and for a long time to come programming a computer would only be thought of as programming with machine code). Plankalkül was eventually more comprehensively published in a 1972 paper, while the first compiler for it was implemented as late as in 1998.

Using the modern programming terminology, the Plankalkül is a typed high-level imperative programming language with following main features:
1. Programs are reusable functions, and functions are not recursive
2. Variables are local to functions (programs)
3. The fundamental data types are arrays and tuples of arrays, but there are also floating point, fixed point, complex numbers; records; hierarchical data structures; list of pairs.
4. The type of the variables does not need to be declared in a special header
5. There is no GOTO construct
6. Assignment operation (e.g.: V1 + V2 => R1).
7. Conditional statement (e.g.: 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.)
8. Possibility for defining sub-programs.
9. Possibility for defining repetition of statements (loops), WHILE construct for iteration.
10. Logical operations (predicate logic and Boolean algebra).
11. Arithmetic exception handling.

A good description of the syntax of Plankalkül language can be seen here.