https://en.wikipedia.org/wiki/Plankalk%C3%BCl Jump to content [ ] Toggle sidebar [wikipe] Wikipedia The Free Encyclopedia Search [ ] [Search] [Go] * Create account * Log in [ ] Personal tools * Create account * Log in Pages for logged out editors learn more * Contributions * Talk Navigation * Main page * Contents * Current events * Random article * About Wikipedia * Contact us * Donate Contribute * Help * Learn to edit * Community portal * Recent changes * Upload file Tools * What links here * Related changes * Upload file * Special pages * Permanent link * Page information * Cite this page * Wikidata item Print/export * Download as PDF * Printable version Languages On this Wikipedia the language links are at the top of the page across from the article title. Go to top. [ ] Contents move to sidebar hide * (Top) * 1History of programming * 2Description Toggle Description subsection + 2.1Data types o 2.1.1Examples + 2.2Identifiers + 2.3Accessing elements by index + 2.4Two-dimensional syntax + 2.5Assignment operation + 2.6Control flow + 2.7Terminology + 2.8Example * 3See also * 4Notes * 5References * 6External links Toggle the table of contents [ ] Toggle the table of contents Plankalkul [ ] 21 languages * l`rby@ * B'lgarski * Dansk * Deutsch * Ellenika * Espanol * frsy * Francais * Italiano * Magyar * Nederlands * Ri Ben Yu * Norsk bokmal * Polski * Portugues * Russkii * Slovenscina * Svenska * Toch'iki * Ukrayins'ka * Zhong Wen Edit links * Article * Talk [ ] English * Read * Edit * View history [ ] More * Read * Edit * View history From Wikipedia, the free encyclopedia Programming language designed 1942 to 1945 Not to be confused with Plan Calcul. Plankalkul Paradigm Procedural Designed by Konrad Zuse First appeared 1948; 75 years ago (1948) - concept first published Major implementations Plankalkul-Compiler by the FU Berlin in 2000 Influenced by Begriffsschrift^[1] Influenced Superplan by Heinz Rutishauser, ALGOL 58^[2] 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. 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] History of programming[edit] 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).^[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: Seit etwa einem halben Jahr Almost half a year of gradual allmahliches Einfuhren in die introduction into formal logic. I formale Logik. Viele meiner rediscovered there lots of my fruheren Gedanken habe ich dort previous thoughts. (combinatorics wiedergefunden. of conditionals = propositional (Bedingungskombinatorik = calculus; study of intervals = Aussagenlogik; Lehre von den lattice theory). Now I plan Intervallen = Gebietenkalkul). Ich creation of "Calculus of plans". plane jetzt die Aufsetzung des There are series of concepts 'Plankalkuls'. Hierzu sind eine needed to clarify for this. Reihe von Begriffen zu klaren. --Konrad Zuse's notebook^[5] [220px-] Historical marker 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[edit] Plankalkul 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 goto Data 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} {\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 x S 0 {\displaystyle 8\times S0} {\ displaystyle 8\times S0}, and boolean matrix of size m {\displaystyle m} m by n {\displaystyle n} n is described by m x n x S 0 {\ displaystyle m\times n\times S0} {\displaystyle m\times n\times S0}. There also exists a shortened notation, so one could write S 1 [?] n {\ displaystyle S1\cdot n} {\displaystyle S1\cdot n} instead of n x S 0 {\displaystyle n\times S0} {\displaystyle n\times S0}.^[23] Type S 0 {\displaystyle S0} {\displaystyle S0} could have two possible values 0 {\displaystyle 0} {\displaystyle 0} and L {\ displaystyle L} 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 } \sigma and t {\ displaystyle \tau } \tau is written as ( s , t ) {\displaystyle (\ sigma ,\tau )} (\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} {\displaystyle A1} - first user defined type. Examples[edit] Zuse used a lot of examples from chess theory:^[24] A 1 {\ S 1 [?] 3 {\ displaystyle displaystyle S1\ Coordinate of chess board (it has A1} {\ cdot 3} {\ size 8x8 so 3 bits are just displaystyle displaystyle S1\ enough) A1} cdot 3} A 2 {\ 2 x A 1 {\ displaystyle displaystyle 2\ square of the board (for example A2} {\ times A1} {\ L00, 00L denotes e2 in algebraic displaystyle displaystyle 2\ notation) A2} times A1} A 3 {\ S 1 [?] 4 {\ displaystyle displaystyle S1\ piece (for example, 00L0 -- white A3} {\ cdot 4} {\ king) displaystyle displaystyle S1\ A3} cdot 4} A 4 {\ ( A 2 , A 3 ) {\ displaystyle displaystyle piece on a board (for example L00, A4} {\ (A2,A3)} {\ 00L; 00L0 -- white king on e2) displaystyle displaystyle A4} (A2,A3)} A 5 {\ 64 x A 3 {\ displaystyle displaystyle 64\ board (pieces positions, describes A5} {\ times A3} {\ which piece each of 64 squares displaystyle displaystyle 64\ contains) A5} times A3} game state ( A 5 {\displaystyle ( A 5 , S 0 , S 1 [?] A5} {\displaystyle A5} -- board, S 4 , A 2 ) {\ 0 {\displaystyle S0} {\ A 10 {\ displaystyle displaystyle S0} -- player to move, displaystyle (A5,S0,S1\cdot S 1 [?] 4 {\displaystyle S1\cdot 4} A10} {\ 4,A2)} {\ {\displaystyle S1\cdot 4} -- displaystyle displaystyle possibility of castling (2 for A10} (A5,S0,S1\cdot white and 2 for black), A 2 {\ 4,A2)} displaystyle A2} {\displaystyle A2} -- information about cell on which en passant move is possible Identifiers[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}}} {\ displaystyle {\begin{matrix}V\\0\end{matrix}}}, Z 2 {\ displaystyle {\begin{matrix}Z\\2\end{matrix}}} {\displaystyle {\ begin{matrix}Z\\2\end{matrix}}}, C 31 {\displaystyle {\begin {matrix}C\\31\end{matrix}}} {\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} {\displaystyle P13}, P 5 [?] 7 {\displaystyle P5\cdot 7} {\displaystyle P5\cdot 7}.^[23] Output value of program P 13 {\displaystyle P13} {\displaystyle P13} saved there in variable R 0 {\displaystyle {\begin{matrix}R\\0\end {matrix}}} {\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}}} {\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}}} {\displaystyle {\begin{matrix}V\\0\end{matrix}}} of type A 10 {\displaystyle A10} {\displaystyle A10} (game state), then V 0 0 {\displaystyle {\begin{matrix}V\\0\\0\end{matrix}}} {\ 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}}} {\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}}} {\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} S types S 0 {\displaystyle S0} {\ displaystyle S0} and S 1 {\displaystyle S1} S1 could be shortened to 0 {\displaystyle 0} {\displaystyle 0} and 1 {\displaystyle 1} 1. ^ [26] Examples: V V 3 K S m x 2 x 1 [?] n {\ variable V3 -- list of m {\ displaystyle {\begin{array}{r|l}&V\\ displaystyle m} m pairs of V&3\\K&\\S&m\times 2\times 1\cdot n\ values of type S 1 [?] n {\ end{array}}} {\displaystyle {\begin displaystyle S1\cdot n} {\ {array}{r|l}&V\\V&3\\K&\\S&m\times 2 displaystyle S1\cdot n} \times 1\cdot n\end{array}}} V V 3 S m x 2 x 1 [?] n {\displaystyle {\begin{array}{r|l}&V\\V&3\\S&m\ Row K could be skipped when it times 2\times 1\cdot n\end{array}}} is empty. Therefore, this {\displaystyle {\begin{array}{r|l}&V expression means the same as \\V&3\\S&m\times 2\times 1\cdot n\ above. end{array}}} V V 3 K i [?] 0 [?] 7 S 0 {\displaystyle Value of eights bit (index 7), {\begin{array}{r|l}&V\\V&3\\K&i\cdot of first (index 0) pair, of 0\cdot 7\\S&0\end{array}}} {\ i-th element of variable V3, displaystyle {\begin{array}{r|l}&V\\ has boolean type ( S 0 {\ V&3\\K&i\cdot 0\cdot 7\\S&0\end displaystyle S0} {\displaystyle {array}}} 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: Using variable as index for Z5-th element of variable V3. Equivalent other variable, in 2d to expression V3[Z5] in many modern Plankalul notation 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 } \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}&Z+1&\ Rightarrow &Z\\V&1&&1\\\end{array}}} {\displaystyle {\begin {array}{r|lll}&Z+1&\Rightarrow &Z\\V&1&&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}& Z+1&=&Z\\V&1&&1\\K&i&&i+1\\\end{array}}} {\displaystyle {\begin {array}{r|lll}&Z+1&=&Z\\V&1&&1\\K&i&&i+1\\\end{array}}} There are claims that Konrad Zuse initially used the glyph Ergibt-Zeichen.png as a sign for assignment, and started to use = {\ displaystyle \Rightarrow } \Rightarrow under the influence of Heinz Rutishauser.^[26] Knuth and Pardo believe that Zuse always wrote = {\ displaystyle \Rightarrow } \Rightarrow , and that Ergibt-Zeichen.png was introduced by publishers of <> 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 } {\ displaystyle =,\neq ,\leq } etc.).^[28] Exponentiation operation is written similarly to the indexing operation - using lines in 2d notation:^[29] Exponentiation notation in Plankalkul Control flow[edit] [icon] 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] < V1[:8.0]) - V1[:8.0] - Z1[:8.0] Z1[:8.0] - R0[:8.0] END See also[edit] * History of programming languages * Timeline of programming languages * List of programming languages Notes[edit] 1. ^ "Early Programming Languages / CS208e: Great Ideas in Computer Science" (PDF). 2. ^ Rojas, Raul; 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 Rechenkunstler. Die Industrialisierung der Rechentechnik in Deutschland. Munchen. 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 Universitaten, 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 Plankalkul im Vergleich mit algorithmischen Sprachen. Reihe Informatik und Operations Research, S. Toeche-Mittler Verlag, Darmstadt 1979, ISBN 3-87820-028-5. 19. ^ Description of Plankalkul-Compiler by Wolfgang Mauerer 20. ^ Rojas et al. 2000, p. 2. 21. ^ Prof. Wolfgang Giloi [de]: Konrad Zuses Plankalkul als Vorlaufer 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 & Wossner 1972, p. 679. 24. ^ ^a ^b ^c Bauer & Wossner 1972, p. 680. 25. ^ Zuse 1945, p. 10. sfn error: no target: CITEREFZuse1945 (help) 26. ^ ^a ^b ^c ^d ^e ^f Bauer & Wossner 1972, p. 681. 27. ^ ^a ^b ^c Knuth & Pardo 1976, p. 14. 28. ^ Bauer & Wossner 1972, p. 682. 29. ^ Zuse 1945, p. 45. sfn error: no target: CITEREFZuse1945 (help) 30. ^ Hellige, Hans Dieter, Geschichten der Informatik. Visionen, Paradigmen, Leitmotive. Berlin, Springer 2004, ISBN 3-540-00217-0 . pp. 45, 104, 105 References[edit] * Giloi, Wolfgang [in German] (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[edit] * The "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.{{cite web}}: CS1 maint: others (link) * Bram Bruines: Plankalkul(2010) - Plankalkul described in a formal way * Germany Authority control: National libraries Edit this at * Israel Wikidata * United States * Retrieved from "https://en.wikipedia.org/w/index.php?title=Plankalkul &oldid=1143628643" Categories: * Programming languages created in 1948 * Procedural programming languages * Non-English-based programming languages * German inventions of the Nazi period * German inventions * Konrad Zuse * 1940s establishments in Germany Hidden categories: * CS1 German-language sources (de) * Harv and Sfn no-target errors * Articles with short description * Short description is different from Wikidata * Articles containing German-language text * All articles with unsourced statements * Articles with unsourced statements from September 2019 * All Wikipedia articles needing clarification * Wikipedia articles needing clarification from September 2019 * Wikipedia articles needing clarification from September 2009 * Articles to be expanded from September 2020 * All articles to be expanded * Articles using small message boxes * Wikipedia articles needing clarification from December 2019 * CS1 maint: others * Articles with GND identifiers * Articles with J9U identifiers * Articles with LCCN identifiers * This page was last edited on 8 March 2023, at 22:45 (UTC). * Text is available under the Creative Commons Attribution-ShareAlike License 3.0 ; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia(r) is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. * Privacy policy * About Wikipedia * Disclaimers * Contact Wikipedia * Mobile view * Developers * Statistics * Cookie statement * Wikimedia Foundation * Powered by MediaWiki