fbpx
Wikipedia

Plankalkül

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.

Plankalkül
ParadigmProcedural
Designed byKonrad Zuse
First appeared1948; 75 years ago (1948) – concept first published
Major implementations
Plankalkül-Compiler by the FU Berlin in 2000
Influenced by
Begriffsschrift[1]
Influenced
Superplan by Heinz Rutishauser,
ALGOL 58[2]

Kalkül 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.[3]

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 (cf. Principles of Mathematical Logic).[4] 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.[5] What Zuse had in mind, however, needed to be much more powerful (propositional calculus is not Turing-complete and is not able to describe even simple arithmetic calculations[6]). In May 1939 he described his plans for the development of what would become Plankalkül.[4] He wrote the following in his notebook:

 
Table on house in Hinterstein [de] where Zuse worked on Plankalkül

While working on his doctoral dissertation, Zuse developed the first known formal system of algorithm notation[7] capable of handling branches and loops.[8][9] In 1942 he began writing a chess program in Plankalkül.[10] In 1944, Zuse met with the German logician and philosopher Heinrich Scholz, who expressed appreciation for Zuse's utilization of logical calculus.[11] In 1945, Zuse described Plankalkül in an unpublished book.[12] The collapse of Nazi Germany, however, prevented him from submitting his manuscript.[8]

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.[13]

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[14] (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.

— Heinz Rutishauser, creator of ALGOL

Unable to continue building computers -- which was also forbidden by the Allied Powers[15] -- Zuse devoted his time to the development of a higher-level programming model and language.[8] In 1948 he published a paper in the Archiv der Mathematik and presented at the Annual Meeting of the GAMM.[16] His work failed to attract much attention.[citation needed] In a 1957 lecture, Zuse expressed his hope that Plankalkül, "after some time as a Sleeping Beauty, will yet come to life."[citation needed] He expressed disappointment that the designers of ALGOL 58 never acknowledged the influence of Plankalkül on their own work.[8][17]

Plankalkül was more comprehensively published[vague] in 1972. The first compiler was implemented by Joachim Hohmann in his 1975 dissertation.[18] Other independent implementations followed in 1998[19] and 2000 at the Free University of Berlin.[20]

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. The Plankalkül provides a data structure called generalized graph (verallgemeinerter Graph), which can be used to represent geometrical structures.[21]

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

Some features of the Plankalkül:[22]

  • 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

Data types

The only primitive data type in the Plankalkül is a single bit or boolean (German: Ja-Nein-Werte - yes-no value in Zuses terminology). It is denoted by the identifier  . All the further data types are composite, and build up from primitive by means of "arrays" and "records".[23]

So, a sequence of eight bits (which in modern computing could be regarded as byte) is denoted by  , and boolean matrix of size   by    is described by  . There also exists a shortened notation, so one could write   instead of  .[23]

Type   could have two possible values   and  . So 4-bit sequence could be written like L00L, but in cases where such a sequence represents a number, the programmer could use the decimal representation 9.[23]

Record of two components   and   is written as  .[23]

Type (German: Art) in Plankalkül consists of 3 elements: structured value (German: Struktur), pragmatic meaning (German: Typ) and possible restriction on possible values (German: Beschränkung).[23] User defined types are identified by letter A with number, like   - first user defined type.

Examples

Zuse used a lot of examples from chess theory:[24]

    Coordinate of chess board (it has size 8x8 so 3 bits are just enough)
    square of the board (for example L00, 00L denotes e2 in algebraic notation)
    piece (for example, 00L0 — white king)
    piece on a board (for example L00, 00L; 00L0 — white king on e2)
    board (pieces positions, describes which piece each of 64 squares contains)
    game state (  — board,   — who moves,   — possibility of castling (2 for white and 2 for black), A2 — information about cell on which En passant move is possible

Identifiers

Identifiers are alphanumeric characters with a number.[23] There are the following kinds of identifiers for variables:[25]

  • Input values (German: Eingabewerte, Variablen) — marked with a letter V.
  • Intermediate, temporary values (German: Zwischenwerte) — marked with a letter Z.
  • Constants (German: Constanten) — marked with a letter С.
  • Output values (German: Resultatwerte) — marked with a letter R.

Particular variable of some kind is identified by number, written under the kind.[23] For example:

 ,  ,   etc.

Programs and subprograms are marked with a letter P, followed by a program (and optionally a subprogram) number. For example  ,  .[23]

Output value of program   saved there in variable   is available for other subprograms under the identifier  , and reading value of that variable also means executing related subprogram.[24]

Accessing elements by index

Plankalkül allows access for separate elements of variable by using "component index" (German: Komponenten-Index). When, for example, program receives input in variable   of type   (game state), then   — gives board state,   — piece on square number i, and   bit number j of that piece.[24]

In modern programming languages, that would be described by notation similar to V0[0], V0[0][i], V0[0][i][j] (although to access a single bit in modern programming languages a bitmask is typically used).

Two-dimensional syntax

Because indexes of variables are written vertically, each Plankalkül instruction requires multiple rows to write down.

First row contains variable kind, then variable number marked with letter V (German: Variablen-Index), then indexes of variable subcomponents marked with K (German: Komponenten-Index), and then (German: Struktur-Index) marked with S, which describes variable type. Type is not required, but Zuse notes that this helps with reading and understanding the program.[26]

In the line   types   and   could be shortened to   and  . [26]

Examples:

  variable V3 — list of   pairs of values of type  
  Row K could be skipped when it is empty. Therefore, this expression means the same as above.
  Value of eights bit (index 7), of first (index 0) pair, of і-th element of variable V3, has boolean type ( ).

Indexes could be not only constants. Variables could be used as indexes for other variables, and that is marked with a line, which shows in which component index would value of variable be used:

  Z5-th element of variable V3. Equivalent to expression V3[Z5] in many modern programming languages.[26]

Assignment operation

Zuse introduced in his calculus an assignment operator, unknown in mathematics before him. He marked it with « », and called it yields-sign (German: Ergibt-Zeichen). Use of concept of assignment is one of the key differences between math and computer science.[27]

Zuse wrote that expression:

 

is analogous to more traditional mathematical equation:

 

There are claims that Konrad Zuse initially used the glyph   as a sign for assignment, and started to use   under the influence of Heinz Rutishauser.[26] Knuth and Pardo believe that Zuse always wrote  , and that   was introduced by publishers of «Über den allgemeinen Plankalkül als Mittel zur Formulierung schematisch-kombinativer Aufgaben» in 1948.[27] In the ALGOL 58 conference in Zurich, European participants proposed to use for assignment character introduced by Zuse, but the American delegation insisted on :=.[26]

The variable that stores the result of an assignment (l-value) is written to the right side of assignment operator.[27] First assignment to the variable is considered to be a declaration.[26]

The left side of assignment operator is used for expression (German: Ausdruck), that defines which value will be assigned to variable. Expressions could use arithmetic operators, boolean operators, and comparison operators (  etc.).[28]

Exponentiation operation is written similarly to the indexing operation - using lines in 2d notation:[29]

 

Control flow

Terminology

Zuse called a single program a Rechenplan ("computation plan"). He envisioned what he called a Planfertigungsgerät ("plan assembly device"), which would automatically translate the mathematical formulation of a program into machine-readable punched film stock.[30]

Example

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

The following example defines a function max3 (in a linear transcription) that calculates the maximum of three variables:

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 

See also

Notes

  1. ^ "Early Programming Languages / CS208e: Great Ideas in Computer Science" (PDF).
  2. ^ Rojas, Raúl; Hashagen, Ulf (2002). The First Computers: History and Architectures. MIT Press. p. 292. ISBN 978-0262681377. Retrieved October 25, 2013.
  3. ^ Hector Zenil (ed.), 2012. A Computable Universe: Understanding and Exploring Nature As Computation with a Foreword by Sir Roger Penrose. Singapore: World Scientific Publishing Company. Page 791.
  4. ^ a b Hans Dieter Hellige, ed. (2004). Geschichten der Informatik. Visionen, Paradigmen, Leitmotive (in German). Berlin: Springer. pp. 113n 152, 216. ISBN 978-3-540-00217-8.
  5. ^ a b Rojas et al. 2004, p. 3.
  6. ^ "Why is propositional logic not Turing complete?".
  7. ^ Knuth & Pardo 1976, p. 9
  8. ^ a b c d Giloi 1997
  9. ^ Hans Dieter Hellige (ed.): Geschichten der Informatik. Visionen, Paradigmen, Leitmotive. Berlin, Springer 2004, ISBN 3-540-00217-0. p. 56.
  10. ^ Hans Dieter Hellige (ed.): Geschichten der Informatik. Visionen, Paradigmen, Leitmotive. Berlin, Springer 2004, ISBN 3-540-00217-0. p. 216,217.
  11. ^ Hartmut Petzold,Moderne Rechenkünstler. Die Industrialisierung der Rechentechnik in Deutschland. München. C.H. Beck Verlag 1992
  12. ^ (full text of the 1945 manuscript)
  13. ^ Rojas et al. 2000, p. 3.
  14. ^ Knuth & Pardo 1976, p. 8
  15. ^ Prof. Wolfgang Coy: Was ist Informatik? Zur Entstehung des Faches an den deutschen Universitäten, in: Hans Dieter Hellige (ed.): Geschichten der Informatik. Visionen, Paradigmen, Leitmotive. Berlin, Springer 2004, ISBN 3-540-00217-0. p. 474.
  16. ^ Hans Dieter Hellige (ed.): Geschichten der Informatik. Visionen, Paradigmen, Leitmotive. Berlin, Springer 2004, ISBN 3-540-00217-0. p. 89.
  17. ^ Knuth & Pardo 1976, p. 15
  18. ^ Joachim Hohmann: Der Plankalkül im Vergleich mit algorithmischen Sprachen. Reihe Informatik und Operations Research, S. Toeche-Mittler Verlag, Darmstadt 1979, ISBN 3-87820-028-5.
  19. ^
  20. ^ Rojas et al. 2000, p. 2.
  21. ^ Prof. Wolfgang Giloi [de]: Konrad Zuses Plankalkül als Vorläufer moderner Programmiermodelle, November 1990
  22. ^ Hans Dieter Hellige (ed.): Geschichten der Informatik. Visionen, Paradigmen, Leitmotive. Berlin, Springer 2004, ISBN 3-540-00217-0. p. 217.
  23. ^ a b c d e f g h Bauer & Wössner 1972, p. 679.
  24. ^ a b c Bauer & Wössner 1972, p. 680.
  25. ^ Zuse 1945, p. 10.
  26. ^ a b c d e f Bauer & Wössner 1972, p. 681.
  27. ^ a b c Knuth & Pardo 1976, p. 14.
  28. ^ Bauer & Wössner 1972, p. 682.
  29. ^ Zuse 1945, p. 45.
  30. ^ Hellige, Hans Dieter, Geschichten der Informatik. Visionen, Paradigmen, Leitmotive. Berlin, Springer 2004, ISBN 3-540-00217-0. pp. 45, 104, 105

References

  • Giloi, Wolfgang (1997). "Konrad Zuse's Plankalkül: The First High-Level "non von Neumann" Programming Language". IEEE Annals of the History of Computing. 19 (2): 17–24. doi:10.1109/85.586068.
  • Knuth, Donald Ervin; Pardo, Luis Trabb (1976), (PDF), Stanford University, Computer Science Department, archived from the original (PDF) on 2017-09-12, retrieved 2017-12-28
  • Zuse, Konrad (1943), "Ansätze einer Theorie des allgemeinen Rechnens unter besonderer Berücksichtigung des Aussagenkalküls und dessen Anwendung auf Relaisschaltungen", (i.e. Inception of a universal theory of computation with special consideration of the propositional calculus and its application to relay circuits.) unpublished manuscript, Zuse Papers 045/018.
  • Zuse, Konrad (1948/49). "Über den allgemeinen Plankalkül als Mittel zur Formulierung schematisch-kombinativer Aufgaben". Arch. Math. 1, pp. 441–449, 1948/49.
  • Zuse, Konrad (1972). "Der Plankalkül". Gesellschaft für Mathematik und Datenverarbeitung. Nr. 63, BMBW - GMD - 63, 1972.
  • Bauer, Friedrich L.; Wössner, Hans (1972). (PDF). Communications of the ACM. 15 (7): 678–685. doi:10.1145/361454.361515. S2CID 17681101. Archived from the original (pdf) on 2009-02-20.(HTML version)
  • Rojas, Raúl; Göktekin, Cüneyt; Friedland, Gerald; Krüger, Mike (2000). (PDF). Archived from the original on 2006-05-01.
  • Rojas, Raúl; Göktekin, Cüneyt; Friedland, Gerald; Krüger, Mike; Scharf, Ludmila (2004). (PDF). pp. 215–235. doi:10.1007/978-3-642-18631-8_9. ISBN 978-3-642-62208-3. Archived from the original (PDF) on 2006-05-01.

External links

  • by Friedrich L. Bauer (alternative source)
  • Rojas, Raúl, et al. (2000). "Plankalkül: The First High-Level Programming Language and its Implementation". Institut für Informatik, Freie Universität Berlin, Technical Report B-3/2000. (full text)
  • Mauerer, Wolfgang (2016-06-03). (in German). Implementation in German. Archived from the original on 2016-06-03. Retrieved 2017-10-03.
  • . Konrad Zuse Internet Archive. Archived page with Plankalkül java applets (non functioning) and several documents (German/English). 2014-08-21. Archived from the original on 2014-08-21. Retrieved 2017-10-04.{{cite web}}: CS1 maint: others (link)
  • Bram Bruines: Plankalkul(2010) - Plankalkül described in a formal way

plankalkül, confused, with, plan, calcul, german, pronunciation, ˈplaːnkalkyːl, programming, language, designed, engineering, purposes, konrad, zuse, between, 1942, 1945, first, high, level, programming, language, designed, computer, paradigmproceduraldesigned. Not to be confused with Plan Calcul Plankalkul 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 PlankalkulParadigmProceduralDesigned byKonrad ZuseFirst appeared1948 75 years ago 1948 concept first publishedMajor implementationsPlankalkul Compiler by the FU Berlin in 2000Influenced byBegriffsschrift 1 InfluencedSuperplan by Heinz Rutishauser ALGOL 58 2 Kalkul is the German term for a formal system as in Hilbert Kalkul the original name for the Hilbert style deduction system so Plankalkul refers to a formal system for planning 3 Contents 1 History of programming 2 Description 2 1 Data types 2 1 1 Examples 2 2 Identifiers 2 3 Accessing elements by index 2 4 Two dimensional syntax 2 5 Assignment operation 2 6 Control flow 2 7 Terminology 2 8 Example 3 See also 4 Notes 5 References 6 External linksHistory of programming EditIn 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 cf Principles of Mathematical Logic 4 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 5 What Zuse had in mind however needed to be much more powerful propositional calculus is not Turing complete and is not able to describe even simple arithmetic calculations 6 In May 1939 he described his plans for the development of what would become Plankalkul 4 He wrote the following in his notebook Almost half a year of gradual introduction into formal logic I rediscovered there lots of my previous thoughts combinatorics of conditionals propositional calculus study of intervals lattice theory Now I plan creation of Calculus of plans There are series of concepts needed to clarify for this Seit etwa einem halben Jahr allmahliches Einfuhren in die formale Logik Viele meiner fruheren Gedanken habe ich dort wiedergefunden Bedingungskombinatorik Aussagenlogik Lehre von den Intervallen Gebietenkalkul Ich plane jetzt die Aufsetzung des Plankalkuls Hierzu sind eine Reihe von Begriffen zu klaren Konrad Zuse s notebook 5 Table on house in Hinterstein de where Zuse worked on Plankalkul While working on his doctoral dissertation Zuse developed the first known formal system of algorithm notation 7 capable of handling branches and loops 8 9 In 1942 he began writing a chess program in Plankalkul 10 In 1944 Zuse met with the German logician and philosopher Heinrich Scholz who expressed appreciation for Zuse s utilization of logical calculus 11 In 1945 Zuse described Plankalkul in an unpublished book 12 The collapse of Nazi Germany however prevented him from submitting his manuscript 8 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 13 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 14 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 Heinz Rutishauser creator of ALGOL Unable to continue building computers which was also forbidden by the Allied Powers 15 Zuse devoted his time to the development of a higher level programming model and language 8 In 1948 he published a paper in the Archiv der Mathematik and presented at the Annual Meeting of the GAMM 16 His work failed to attract much attention citation needed In a 1957 lecture Zuse expressed his hope that Plankalkul after some time as a Sleeping Beauty will yet come to life citation needed He expressed disappointment that the designers of ALGOL 58 never acknowledged the influence of Plankalkul on their own work 8 17 Plankalkul was more comprehensively published vague in 1972 The first compiler was implemented by Joachim Hohmann in his 1975 dissertation 18 Other independent implementations followed in 1998 19 and 2000 at the Free University of Berlin 20 Description EditPlankalkul 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 The Plankalkul provides a data structure called generalized graph verallgemeinerter Graph which can be used to represent geometrical structures 21 Plankalkul shared an idiosyncratic notation using multiple lines with Frege s Begriffsschrift of 1879 dealing with mathematical logic clarification needed Some features of the Plankalkul 22 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 gotoData types Edit The only primitive data type in the Plankalkul is a single bit or boolean German Ja Nein Werte yes no value in Zuses terminology It is denoted by the identifier S 0 displaystyle S0 All the further data types are composite and build up from primitive by means of arrays and records 23 So a sequence of eight bits which in modern computing could be regarded as byte is denoted by 8 S 0 displaystyle 8 times S0 and boolean matrix of size m displaystyle m by n displaystyle n is described by m n S 0 displaystyle m times n times S0 There also exists a shortened notation so one could write S 1 n displaystyle S1 cdot n instead of n S 0 displaystyle n times S0 23 Type S 0 displaystyle S0 could have two possible values 0 displaystyle 0 and L displaystyle L So 4 bit sequence could be written like L00L but in cases where such a sequence represents a number the programmer could use the decimal representation 9 23 Record of two components s displaystyle sigma and t displaystyle tau is written as s t displaystyle sigma tau 23 Type German Art in Plankalkul consists of 3 elements structured value German Struktur pragmatic meaning German Typ and possible restriction on possible values German Beschrankung 23 User defined types are identified by letter A with number like A 1 displaystyle A1 first user defined type Examples Edit Zuse used a lot of examples from chess theory 24 A 1 displaystyle A1 S 1 3 displaystyle S1 cdot 3 Coordinate of chess board it has size 8x8 so 3 bits are just enough A 2 displaystyle A2 2 A 1 displaystyle 2 times A1 square of the board for example L00 00L denotes e2 in algebraic notation A 3 displaystyle A3 S 1 4 displaystyle S1 cdot 4 piece for example 00L0 white king A 4 displaystyle A4 A 2 A 3 displaystyle A2 A3 piece on a board for example L00 00L 00L0 white king on e2 A 5 displaystyle A5 64 A 3 displaystyle 64 times A3 board pieces positions describes which piece each of 64 squares contains A 10 displaystyle A10 A 5 S 0 S 1 4 A 2 displaystyle A5 S0 S1 cdot 4 A2 game state A 5 displaystyle A5 board S 0 displaystyle S0 who moves S 1 4 displaystyle S1 cdot 4 possibility of castling 2 for white and 2 for black A2 information about cell on which En passant move is possibleIdentifiers Edit Identifiers are alphanumeric characters with a number 23 There are the following kinds of identifiers for variables 25 Input values German Eingabewerte Variablen marked with a letter V Intermediate temporary values German Zwischenwerte marked with a letter Z Constants German Constanten marked with a letter S Output values German Resultatwerte marked with a letter R Particular variable of some kind is identified by number written under the kind 23 For example V 0 displaystyle begin matrix V 0 end matrix Z 2 displaystyle begin matrix Z 2 end matrix C 31 displaystyle begin matrix C 31 end matrix etc Programs and subprograms are marked with a letter P followed by a program and optionally a subprogram number For example P 13 displaystyle P13 P 5 7 displaystyle P5 cdot 7 23 Output value of program P 13 displaystyle P13 saved there in variable R 0 displaystyle begin matrix R 0 end matrix is available for other subprograms under the identifier R 17 0 displaystyle begin matrix R17 0 end matrix and reading value of that variable also means executing related subprogram 24 Accessing elements by index Edit Plankalkul allows access for separate elements of variable by using component index German Komponenten Index When for example program receives input in variable V 0 displaystyle begin matrix V 0 end matrix of type A 10 displaystyle A10 game state then V 0 0 displaystyle begin matrix V 0 0 end matrix gives board state V 0 0 i displaystyle begin matrix V 0 0 cdot i end matrix piece on square number i and V 0 0 i j displaystyle begin matrix V 0 0 cdot i cdot j end matrix bit number j of that piece 24 In modern programming languages that would be described by notation similar to V0 0 V0 0 i V0 0 i j although to access a single bit in modern programming languages a bitmask is typically used Two dimensional syntax Edit Because indexes of variables are written vertically each Plankalkul instruction requires multiple rows to write down First row contains variable kind then variable number marked with letter V German Variablen Index then indexes of variable subcomponents marked with K German Komponenten Index and then German Struktur Index marked with S which describes variable type Type is not required but Zuse notes that this helps with reading and understanding the program 26 In the line S displaystyle S types S 0 displaystyle S0 and S 1 displaystyle S1 could be shortened to 0 displaystyle 0 and 1 displaystyle 1 26 Examples V V 3 K S m 2 1 n displaystyle begin array r l amp V V amp 3 K amp S amp m times 2 times 1 cdot n end array variable V3 list of m displaystyle m pairs of values of type S 1 n displaystyle S1 cdot n V V 3 S m 2 1 n displaystyle begin array r l amp V V amp 3 S amp m times 2 times 1 cdot n end array Row K could be skipped when it is empty Therefore this expression means the same as above V V 3 K i 0 7 S 0 displaystyle begin array r l amp V V amp 3 K amp i cdot 0 cdot 7 S amp 0 end array Value of eights bit index 7 of first index 0 pair of i th element of variable V3 has boolean type S 0 displaystyle S0 Indexes could be not only constants Variables could be used as indexes for other variables and that is marked with a line which shows in which component index would value of variable be used Z5 th element of variable V3 Equivalent to expression V3 Z5 in many modern programming languages 26 Assignment operation Edit Zuse introduced in his calculus an assignment operator unknown in mathematics before him He marked it with displaystyle Rightarrow and called it yields sign German Ergibt Zeichen Use of concept of assignment is one of the key differences between math and computer science 27 Zuse wrote that expression Z 1 Z V 1 1 displaystyle begin array r lll amp Z 1 amp Rightarrow amp Z V amp 1 amp amp 1 end array is analogous to more traditional mathematical equation Z 1 Z V 1 1 K i i 1 displaystyle begin array r lll amp Z 1 amp amp Z V amp 1 amp amp 1 K amp i amp amp i 1 end array There are claims that Konrad Zuse initially used the glyph as a sign for assignment and started to use displaystyle Rightarrow under the influence of Heinz Rutishauser 26 Knuth and Pardo believe that Zuse always wrote displaystyle Rightarrow and that was introduced by publishers of Uber den allgemeinen Plankalkul als Mittel zur Formulierung schematisch kombinativer Aufgaben in 1948 27 In the ALGOL 58 conference in Zurich European participants proposed to use for assignment character introduced by Zuse but the American delegation insisted on 26 The variable that stores the result of an assignment l value is written to the right side of assignment operator 27 First assignment to the variable is considered to be a declaration 26 The left side of assignment operator is used for expression German Ausdruck that defines which value will be assigned to variable Expressions could use arithmetic operators boolean operators and comparison operators displaystyle neq leq etc 28 Exponentiation operation is written similarly to the indexing operation using lines in 2d notation 29 Control flow Edit This section needs expansion You can help by adding to it September 2020 Terminology Edit Zuse called a single program a Rechenplan computation plan He envisioned what he called a Planfertigungsgerat plan assembly device which would automatically translate the mathematical formulation of a program into machine readable punched film stock 30 Example Edit The original notation was two dimensional clarification needed For a later implementation in the 1990s a linear notation was developed The following example defines a function max3 in a linear transcription that calculates the maximum of three variables 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 lt V1 8 0 V1 8 0 Z1 8 0 Z1 8 0 R0 8 0 ENDSee also EditHistory of programming languages Timeline of programming languages List of programming languagesNotes Edit Early Programming Languages CS208e Great Ideas in Computer Science PDF Rojas Raul Hashagen Ulf 2002 The First Computers History and Architectures MIT Press p 292 ISBN 978 0262681377 Retrieved October 25 2013 Hector Zenil ed 2012 A Computable Universe Understanding and Exploring Nature As Computation with a Foreword by Sir Roger Penrose Singapore World Scientific Publishing Company Page 791 a b Hans Dieter Hellige ed 2004 Geschichten der Informatik Visionen Paradigmen Leitmotive in German Berlin Springer pp 113n 152 216 ISBN 978 3 540 00217 8 a b Rojas et al 2004 p 3 Why is propositional logic not Turing complete Knuth amp Pardo 1976 p 9 a b c d Giloi 1997 Hans Dieter Hellige ed Geschichten der Informatik Visionen Paradigmen Leitmotive Berlin Springer 2004 ISBN 3 540 00217 0 p 56 Hans Dieter Hellige ed Geschichten der Informatik Visionen Paradigmen Leitmotive Berlin Springer 2004 ISBN 3 540 00217 0 p 216 217 Hartmut Petzold Moderne Rechenkunstler Die Industrialisierung der Rechentechnik in Deutschland Munchen C H Beck Verlag 1992 full text of the 1945 manuscript Rojas et al 2000 p 3 Knuth amp Pardo 1976 p 8 Prof Wolfgang Coy Was ist Informatik Zur Entstehung des Faches an den deutschen Universitaten in Hans Dieter Hellige ed Geschichten der Informatik Visionen Paradigmen Leitmotive Berlin Springer 2004 ISBN 3 540 00217 0 p 474 Hans Dieter Hellige ed Geschichten der Informatik Visionen Paradigmen Leitmotive Berlin Springer 2004 ISBN 3 540 00217 0 p 89 Knuth amp Pardo 1976 p 15 Joachim Hohmann Der Plankalkul im Vergleich mit algorithmischen Sprachen Reihe Informatik und Operations Research S Toeche Mittler Verlag Darmstadt 1979 ISBN 3 87820 028 5 Description of Plankalkul Compiler by Wolfgang Mauerer Rojas et al 2000 p 2 Prof Wolfgang Giloi de Konrad Zuses Plankalkul als Vorlaufer moderner Programmiermodelle November 1990 Hans Dieter Hellige ed Geschichten der Informatik Visionen Paradigmen Leitmotive Berlin Springer 2004 ISBN 3 540 00217 0 p 217 a b c d e f g h Bauer amp Wossner 1972 p 679 a b c Bauer amp Wossner 1972 p 680 Zuse 1945 p 10 sfn error no target CITEREFZuse1945 help a b c d e f Bauer amp Wossner 1972 p 681 a b c Knuth amp Pardo 1976 p 14 Bauer amp Wossner 1972 p 682 Zuse 1945 p 45 sfn error no target CITEREFZuse1945 help Hellige Hans Dieter Geschichten der Informatik Visionen Paradigmen Leitmotive Berlin Springer 2004 ISBN 3 540 00217 0 pp 45 104 105References EditGiloi Wolfgang 1997 Konrad Zuse s Plankalkul The First High Level non von Neumann Programming Language IEEE Annals of the History of Computing 19 2 17 24 doi 10 1109 85 586068 Knuth Donald Ervin Pardo Luis Trabb 1976 The Early Development of Programming Languages PDF Stanford University Computer Science Department archived from the original PDF on 2017 09 12 retrieved 2017 12 28 Zuse Konrad 1943 Ansatze einer Theorie des allgemeinen Rechnens unter besonderer Berucksichtigung des Aussagenkalkuls und dessen Anwendung auf Relaisschaltungen i e Inception of a universal theory of computation with special consideration of the propositional calculus and its application to relay circuits unpublished manuscript Zuse Papers 045 018 Zuse Konrad 1948 49 Uber den allgemeinen Plankalkul als Mittel zur Formulierung schematisch kombinativer Aufgaben Arch Math 1 pp 441 449 1948 49 Zuse Konrad 1972 Der Plankalkul Gesellschaft fur Mathematik und Datenverarbeitung Nr 63 BMBW GMD 63 1972 Bauer Friedrich L Wossner Hans 1972 The Plankalkul of Konrad Zuse A Forerunner of Today s Programming Languages PDF Communications of the ACM 15 7 678 685 doi 10 1145 361454 361515 S2CID 17681101 Archived from the original pdf on 2009 02 20 HTML version Rojas Raul Goktekin Cuneyt Friedland Gerald Kruger Mike 2000 Plankalkul The First High Level Programming Language and its Implementation PDF Archived from the original on 2006 05 01 Rojas Raul Goktekin Cuneyt Friedland Gerald Kruger Mike Scharf Ludmila 2004 Konrad Zuses Plankalkul Seine Genese und eine moderne Implementierung PDF pp 215 235 doi 10 1007 978 3 642 18631 8 9 ISBN 978 3 642 62208 3 Archived from the original PDF on 2006 05 01 External links EditThe Plankalkul of Konrad Zuse A Forerunner of Today s Programming Languages by Friedrich L Bauer alternative source Rojas Raul et al 2000 Plankalkul The First High Level Programming Language and its Implementation Institut fur Informatik Freie Universitat Berlin Technical Report B 3 2000 full text archived Mauerer Wolfgang 2016 06 03 Der Plankalkul von Konrad Zuse in German Implementation in German Archived from the original on 2016 06 03 Retrieved 2017 10 03 Plankalkul Konrad Zuse Internet Archive Archived page with Plankalkul java applets non functioning and several documents German English 2014 08 21 Archived from the original on 2014 08 21 Retrieved 2017 10 04 a href Template Cite web html title Template Cite web cite web a CS1 maint others link Bram Bruines Plankalkul 2010 Plankalkul described in a formal way Retrieved from https en wikipedia org w index php title Plankalkul amp oldid 1121469497, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.