プランカルキュル

Programming language designed 1942 to 1945

プランカルキュル
パラダイム手続き型
デザイン:コンラート・ツーゼ
初登場1948年、77年前– コンセプトが初めて発表された (1948)
主要な実装
2000年にベルリン自由大学が作成したPlankalkül-Compiler
影響を受けた
スーパープランALGOL 58 [1]

プランカルキュルドイツ語発音: [ˈplaːnkalkyːl])は、コンラート・ツーゼが1942年から1945年にかけて工学用途で設計したプログラミング言語である。これはコンピュータ用に設計された最初の高水準プログラミング言語であった。ツーゼはプランカルキュルをZシリーズのどのマシンにも実装しなかった。[2]

カルキュル(ラテン語のcalculusに由来)は、形式体系を意味するドイツ語である。ヒルベルト・カルキュルは、ヒルベルト式の演繹体系の元来の名前である。したがって、プランカルキュルは計画のための形式体系を指す。[3]

プログラミングの歴史

計算機作成の分野では、ツーゼは独学で、既存の他の機械式計算機に関する知識なしに計算機を開発したが、後に(Z3の構築)ヒルベルトアッカーマンの初等数理論理学に関する本(「数理論理学の原理」を参照)に触発された。[4] : 113、152、216 論理回路を記述するために、ツーゼは独自の図と表記システムを発明し、「条件文の組合せ論」(ドイツ語Bedingungskombinatorik)と呼んだ。 1938年にZ1 を完成させた後、ツーゼは、彼が独自に考案した計算がすでに存在し、命題計算として知られていることを発見した。[5] : 3 しかし、ツーゼが考えていたものは、はるかに強力なものだった(命題計算はチューリング完全ではなく、単純な算術計算さえ記述できない[6])。 1939年5月、彼は後にプランカルキュールとなるものの開発計画について述べた。[4] : 113, 152, 216 彼はノートに次のように記している。

正式なロジックですべての機能を使用できます。 Viele meiner früheren Gedanken habe ich dort wiedergefunden。 (Bedingungskombinatorik = Aussagenlogik; Lehre von den Intervallen = Gebietenkalkül)。私は飛行機を飛ばし、「プランカルキュルス」を攻撃します。 Hierzu sind eine Reihe von Begriffen zu klären.

翻訳:

形式論理学に徐々に足を踏み入れてほぼ半年。そこで、以前の考えを多く再発見しました。(条件文の組合せ論=命題計算、区間の研究=格子理論)。現在、これに「計画の計算」を取り入れる計画を立てています。そのためには、いくつかの概念を明確にする必要があります。

—Konrad Zuse のノート[5] : 3 
ツゼがプランカルキュルに取り組んだヒンターシュタイン [デ]の家の歴史的標識

博士論文に取り組んでいる間、ツーゼは分岐とループを処理できる最初の正式なアルゴリズム表記法を開発した。 [7] : 9  [8] : 18  [4] : 56  1942年に彼はプランカルキュールでチェスのプログラムを書き始めた[4] : 216–217  1944年にツーゼはドイツの論理学者で哲学者のハインリヒ・ショルツと会い、ショルツはツーゼの論理計算の利用を評価した[9] 1945年にツーゼは未出版の本でプランカルキュールについて説明した。[10]しかし、ナチスドイツの崩壊により、彼は原稿を提出することができなかった。[8] : 18 

当時、世界で稼働していたコンピュータはENIACハーバードマークIの2台だけだったが、どちらもコンパイラを使用しておらず、ENIACは配線の接続方法を変更することでタスクごとに再プログラムする必要があった。[5] : 3 

彼のコンピュータのほとんどは連合軍の爆弾によって破壊されましたが、ツーゼはZ4という1台のマシンを救出し、アルプスの村ヒンターシュタイン[7] : 8  (バート・ヒンデラングの一部)に移すことができました。

アルゴリズム言語を考案する最初の試みは、1948年にK.ツーゼによって行われました。彼の記法は非常に一般的なものでしたが、その提案は十分な評価を得ることはありませんでした。

連合国によってコンピュータの製造も禁止されていたため[11]、ツーゼは高水準プログラミングモデルと言語の開発に時間を費やした。[8] : 18  1948年、彼はArchiv der Mathematikに論文を発表し、 GAMMの年次総会で発表した[4] : 89 彼の研究はあまり注目を集めなかった。[要出典] 1957年の講演で、ツーゼはプランカルキュールが「しばらく眠れる森の美女として生き返った後、いつか復活するだろう」という希望を表明した。[5] : 3 彼は、ALGOL 58の設計者がプランカルキュールの影響を自らの研究に決して認めなかったことに失望を表明した。[8] : 18  [7] : 15 

プランカルキュールは1972年に解説付きで再出版された。[12]プランカルキュールの最初のコンパイラは、ヨアヒム・ホーマンが1975年の博士論文で実装した。[13]その後、1998年[14]と2000年にベルリン自由大学で独立した実装が行われた。[5] : 2 

説明

プランカルキュルは、言語APL関係代数と比較されることがあります。プランカルキュルには、代入文、サブルーチン、条件文、反復処理、浮動小数点演算、配列、階層的レコード構造、アサーション、例外処理、そしてゴール指向実行などの高度な機能が含まれています。プランカルキュルは、幾何学的構造を表現するために使用できる一般化グラフverallgemeinerter Graph )と呼ばれるデータ構造を提供します。 [15]

プランカルキュルの多くの特徴は後のプログラミング言語にも現れますが、例外は複数行を使用する独特の 2 次元表記です。

プランカルキュルの特徴:[4] : 217 

データ型

プランカルキュルにおける唯一の基本データ型は、単一ビットすなわちブール値ドイツ語Ja-Nein-Werte、ツーゼの用語では「はい/いいえ」の値)である。これは識別子 で示される。その他のデータ型はすべて複合型であり、「配列」と「レコード」によって基本データ型から構成される。[16] : 679  S 0 {\displaystyle S0}

したがって、8ビットのシーケンス(現代のコンピュータではバイトとみなされる)は で表され、サイズが のブール行列  で表されます。短縮表記法も存在するため、の代わりに と書くこともできます[16] : 679  8 × S 0 {\displaystyle 8\times S0} m {\displaystyle m} n {\displaystyle n} m × n × S 0 {\displaystyle m\times n\times S0} S 1 n {\displaystyle S1\cdot n} n × S 0 {\displaystyle n\times S0}

型は2つの値とをとる可能性がある。したがって、4ビットのシーケンスはL00Lのように記述できるが、そのようなシーケンスが数値を表す場合、プログラマーは10進数表現の9を使用することができる。[16] : 679  S 0 {\displaystyle S0} 0 {\displaystyle 0} L {\displaystyle L}

2つの成分の記録と表記される[16] : 679  σ {\displaystyle \sigma } τ {\displaystyle \tau } ( σ , τ ) {\displaystyle (\sigma ,\tau )}

プランカルキュルにおける型(ドイツ語Art )は、構造化された値(ドイツ語Struktur)、実用的な意味(ドイツ語Typ)、および可能な値に対する制限(ドイツ語Beschränkung)の3つの要素で構成されています。[16] :679 ユーザー定義型は、最初のユーザー定義型のように、文字Aと番号で識別されます A 1 {\displaystyle A1}

ツーゼはチェス理論から多くの例を挙げた:[16] : 680 

A 1 {\displaystyle A1} S 1 3 {\displaystyle S1\cdot 3} チェス盤の座標(サイズは 8x8 なので 3 ビットで十分です)
A 2 {\displaystyle A2} 2 × A 1 {\displaystyle 2\times A1} 盤面の正方形(例えばL00、00Lは代数記法でe2を表す)
A 3 {\displaystyle A3} S 1 4 {\displaystyle S1\cdot 4} 駒(例:00L0 — 白のキング)
A 4 {\displaystyle A4} ( A 2 , A 3 ) {\displaystyle (A2,A3)} 盤上の駒(例えば L00, 00L; 00L0 — e2 に白のキング)
A 5 {\displaystyle A5} 64 × A 3 {\displaystyle 64\times A3} ボード(駒の位置、64 マスのそれぞれにどの駒が含まれているかを説明します)
A 10 {\displaystyle A10} ( A 5 , S 0 , S 1 4 , A 2 ) {\displaystyle (A5,S0,S1\cdot 4,A2)} ゲームの状態( - 盤面、 - プレイヤーの手番、 -キャスリングの可能性(白は2、黒は2)、 -アンパッサント移動が可能な  セルの情報 A 5 {\displaystyle A5} S 0 {\displaystyle S0} S 1 4 {\displaystyle S1\cdot 4} A 2 {\displaystyle A2}

識別子

識別子は数字と英数字の組み合わせです。[16] : 679 変数の識別子には以下の種類があります。[10] : 10 

  • 入力値 (ドイツ語: Eingabewerte、Variablen ) — 文字 V でマークされます。
  • 中間の一時的な値 (ドイツ語: Zwischenwerte ) — 文字 Z でマークされます。
  • 定数 (ドイツ語: Constanten ) — 文字 С で示されます。
  • 出力値 (ドイツ語: Resultatwerte ) — 文字 R でマークされます。

ある種の特定の変数は、その種類の下に書かれた番号によって識別されます。[16] : 679 例えば:

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}}}

プログラムとサブプログラムは、文字Pに続いてプログラム番号(およびオプションでサブプログラム番号)が付けられます。例[ 16] : 679  P 13 {\displaystyle P13} P 5 7 {\displaystyle P5\cdot 7}

そこに変数に保存されたプログラムの出力値は、 識別子の下の他のサブプログラムで利用可能であり、その変数の値を読み取ることは関連するサブプログラムを実行することも意味します。[16] : 680  P 13 {\displaystyle P13} R 0 {\displaystyle {\begin{matrix}R\\0\end{matrix}}} R 17 0 {\displaystyle {\begin{matrix}R17\\0\end{matrix}}}

インデックスによる要素へのアクセス

プランカルキュルでは、「コンポーネントインデックス」(ドイツ語Komponenten-Index )を用いて変数の個々の要素にアクセスすることができます。例えば、プログラムが(ゲームの状態)型の変数に入力を受け取ると、次の情報 が得られます。— 盤面の状態、 — i番目のマスにある駒、そしてその駒のビット番号j。[16] : 680  V 0 {\displaystyle {\begin{matrix}V\\0\end{matrix}}} A 10 {\displaystyle A10} V 0 0 {\displaystyle {\begin{matrix}V\\0\\0\end{matrix}}} V 0 0 i {\displaystyle {\begin{matrix}V\\0\\0\cdot i\end{matrix}}} V 0 0 i j {\displaystyle {\begin{matrix}V\\0\\0\cdot i\cdot j\end{matrix}}}

V0[0]現代のプログラミング言語では、これは、 、のような表記法で記述されますV0[0][i](V0[0][i][j]ただし、現代のプログラミング言語で 1 つのビットにアクセスするには、通常、ビットマスクが使用されます)。

2次元構文

変数のインデックスは垂直に記述されるため、各プランカルキュル命令を記述するには複数の行が必要になります。[引用が必要]

最初の行には変数の種類、次にV(ドイツ語Variablen-Indexで示される変数番号、K(ドイツ語Komponenten-Index)で示される変数サブコンポーネントのインデックス、そして変数の型を表すS(ドイツ語Struktur-Index)が記述されます。型は必須ではありませんが、ツーゼはこれがプログラムの読みやすさと理解に役立つと述べています。[16] : 681 

行内のに短縮できます[16] : 681  S {\displaystyle S} S 0 {\displaystyle S0} S 1 {\displaystyle S1} 0 {\displaystyle 0} 1 {\displaystyle 1}

例:

V V 3 K S m × 2 × 1 n {\displaystyle {\begin{array}{r|l}&V\\V&3\\K&\\S&m\times 2\times 1\cdot n\end{array}}} 変数V3 —型の値のペアのリスト m {\displaystyle m} S 1 n {\displaystyle S1\cdot n}
V V 3 S m × 2 × 1 n {\displaystyle {\begin{array}{r|l}&V\\V&3\\S&m\times 2\times 1\cdot n\end{array}}} K行は空の場合はスキップできます。したがって、この式は上記と同じ意味になります。
V V 3 K i 0 7 S 0 {\displaystyle {\begin{array}{r|l}&V\\V&3\\K&i\cdot 0\cdot 7\\S&0\end{array}}} 変数V3のі番目の要素の最初の(インデックス0)ペアの8番目のビット(インデックス7)の値はブール型()です。 S 0 {\displaystyle S0}

インデックスは定数だけではありません。変数は他の変数のインデックスとして使用できます。その場合、変数の値がどのコンポーネントのインデックスとして使用されるかを示す線で示されます。

2次元プランクラル記法において、変数を他の変数のインデックスとして使用する 変数V3のZ5番目の要素。V3[Z5]多くの現代のプログラミング言語の式に相当する。[16] : 681 

代入演算

ツーゼは微積分学において、それまで数学では知られていなかった代入演算子を導入した。彼はそれを「 」で示し、yields-sign(ドイツ語Ergibt-Zeichen )と名付けた。代入の概念の使用は、数学とコンピュータサイエンスの重要な違いの一つである。[7] : 14  {\displaystyle \Rightarrow }

ツーゼは次のように書いています。

Z + 1 Z V 1 1 {\displaystyle {\begin{array}{r|lll}&Z+1&\Rightarrow &Z\\V&1&&1\\\end{array}}}

これは、より伝統的な数学方程式に類似しています。

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}}}

コンラート・ツーゼが最初にこの記号を使ったという主張がある。割り当ての記号として使用され、ハインツ・ルティスハウザーの影響を受けて使用されました[16] :681 クヌースとパルドは、ツーゼは常に と書いており {\displaystyle \Rightarrow } {\displaystyle \Rightarrow } は、1948 年に«Über den allgemeinen Plankalkül als Mittel zur Formulierung schematisch-kombinativer Aufgaben» の出版社によって導入されました。[7] : 14 チューリッヒでのALGOL 58会議では、ヨーロッパの参加者が Zuse によって導入された割り当て文字を使用することを提案しましたが、アメリカの代表団は を主張しました:=[16] : 681 

代入結果を格納する変数(左辺値)は代入演算子の右側に書き込まれる。[7] : 14 変数への最初の代入は宣言とみなされる。[16] : 681 

代入演算子の左側は、変数に代入する値を定義する式(ドイツ語Ausdruck )に使用されます。式では、算術演算子、ブール演算子、比較演算子(など)を使用できます。[16] : 682  = , , {\displaystyle =,\neq ,\leq }

指数演算は、指数演算と同様に、2次元表記の線を使用して記述されます。[10] : 45 

Plankalkül のべき乗表記

制御フロー

FALSE=0ブール値はとを用いて整数で表現されましたTRUE=1。条件制御フローはガード文 という形式を取り、 が真であれA -> Bブロックを実行しました。また、 } という形式の反復演算子もあり、これはすべてのガードが偽になるまで繰り返します。[17]BAW { A -> X; B -> Y

用語

ツーゼは単一のプログラムを「計算計画」( Rechenplan)と呼んだ。彼は「計画組立装置」( Planfertigungsgerät)と名付けた。これは、プログラムの数式を機械が読み取り可能なパンチフィルムに自動的に変換するものであり、今日ではトランスレータまたはコンパイラと呼ばれるものである[4] : 45, 104, 105 

元々の表記法は2次元であり、複数の行にまたがる意味においては、異なる終端記号のインデントと空間的な関係が重要でした。1990年代の実装では、線形表記法が開発されました。

次の例では、3 つの変数の最大値を計算する関数max3(線形転写) を定義します。

P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) → R0[:8.0]
最大値(V0[:8.0],V1[:8.0]) → Z1[:8.0]
max(Z1[:8.0],V2[:8.0]) → R0[:8.0]
終わり
P2最大値(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]
終わり

参照

参考文献

  1. ^ Rojas, Raúl ; Hashagen, Ulf [ドイツ語] (2002). The First Computers: History and Architectures. MIT Press . p. 292. ISBN 978-0-26268137-7. 2013年10月25日閲覧
  2. ^ “PLANKALKÜL by Bernhard Behr” (PDF) .
  3. ^ Zenil, Héctor [Wikidataにて]編 (2012). 『計算可能な宇宙:計算としての自然の理解と探求 ―ロジャー・ペンローズ卿による序文付き』 シンガポール: World Scientific Publishing Company . p. 791.
  4. ^ abcdefg ヘリゲ、ハンス ディーター編。 (2004 年 1 月) [2002 年 11 月]。ドイツのブレーメンで書かれました。情報収集。 Visionen、Paradigmen、Leitmotive (ドイツ語) (第 1 版)。ベルリン / ハイデルベルク、ドイツ: Springer-Verlagpp . 45、56、89、104–105、113、152、216–217 土井: 10.1007/978-3-642-18631-8 ISBN 978-3-540-00217-8. ISBN 3-540-00217-0(12+514ページ)
  5. ^ abcde ロハス、ラウール;ギョクテキン、キュネト。ジェラルド・フリードランド。クルーガー、マイク。シャーフ、リュドミラ。クニス、デニス;オラフ、ラングマック (2004 年 1 月) [2002 年 11 月]。 「Konrad Zuses Plankalkül — Seine Genese und eine moderne Implementierung」(PDF)。 『Hellige』、ハンス・ディーター編著。情報収集。ヴィジョネン、パラディグメン、ライトモーティブ。条件 3: Leitideen und Paradigmen in der Entwicklung der Programmierspra​​chen und der Programmierung (ドイツ語) (第 1 版)。ベルリン / ハイデルベルク、ドイツ: Springer-Verlag。 215–235 ページ [2–4]。土井:10.1007/978-3-642-18631-8_9。ISBN 978-3-642-62208-32006年5月1日時点のオリジナル(PDF)からアーカイブ。(21 [24] ページ)
  6. ^ 「なぜ命題論理はチューリング完全ではないのか?」数学. StackExchange . 2013年4月1日. 2023年11月2日時点のオリジナルよりアーカイブ2023年11月2日閲覧。
  7. ^ abcdef Knuth, Donald Ervin ; Pardo, Luis Isidoro Trabb [ポルトガル語] (1976年8月). 「プログラミング言語の初期開発」(PDF) . スタンフォード大学コンピュータサイエンス学部. pp. 8, 9, 14, 15. 2017年9月12日時点のオリジナル(PDF)からアーカイブ。 2017年12月28日閲覧
  8. ^ abcd Giloi, Wolfgang K. [ドイツ語] (1997年4月~6月). 「Konrad ZuseのPlankalkül: The First High-Level "non von Neumann" Programming Language」 . IEEE Annals of the History of Computing . 19 (2). IEEE : 17– 24. doi :10.1109/85.586068.(8ページ)
  9. ^ ペッツォルト、ハルトムート[ドイツ語] (1992).モデルネ・レッヒェンキュンストラー。ドイツの Die Industrialisierung der Rechentechnik (ドイツ語)。ミュンヘン、ドイツ: CH Beck Verlag
  10. ^ abc ズーゼ、コンラッド(1946) [1945]. Rojas, ラウール;ワグナー、G.シャーフ、リュドミラ。 Schöttker-Söhl [Schötke-Suhl]、スザンヌ (編)。 Der Plankalkül (In der Fassung von 1945) (原稿) (ドイツ語)。 Konrad Zuse インターネット アーカイブ。 pp. 10, 45. ZIA ID: 0233. オリジナルからのアーカイブ (2015-04-16) 2023-11-01に取得(1+1+180ページ)
  11. ^ ヴォルフガング・コイ[ドイツ語] (2004 年 1 月) [2002 年 11 月]. 「Informatik はドイツ大学ですか? Zur Entstehung des Faches はドイツ大学でしたか?」 『Hellige』、ハンス・ディーター編著。情報収集。ヴィジョネン、パラディグメン、ライトモーティブ。条件 5: Wandel der Leitkonzepte in der Wissenschaftsdisziplin Informatik (ドイツ語) (第 1 版)。ベルリン / ハイデルベルク、ドイツ: Springer-Verlag。 473–498 ページ [474]。土井:10.1007/978-3-642-18631-8_17。ISBN 978-3-540-00217-8. ISBN 3-540-00217-0[1]
  12. ^ ズーゼ、コンラッド(1972)。デア・プランカルキュル。 Kommentierter Nachdruck der Fassung von 1945 (ドイツ語)。 Vol. 63. ザンクト・アウグスティン、ドイツ: Gesellschaft für Mathematik und Datenverarbeitung (GMD) / Bundesministerium für Bildung und Wissenschaft (BMBW)。 BMBW-GMD-63。
  13. ^ ホーマン、ヨアヒム (1979)。Der PLANKALKÜL は、アルゴリズムを考慮した Vergleich です。 Reihe Informatik und Operations Research (ドイツ語)。 Vol. 7 (第 1 版)。ダルムシュタット、ドイツ: S. Toeche-Mittler-Verlag (stmv)。ISBN 3-87820-028-5(136ページ) 目次
  14. ^ マウラー、ヴォルフガング (2016-06-03). 「Der Plankalkül von Konrad Zuse」(ドイツ語)。ドイツ語での実装。 2016 年 11 月 15 日にオリジナルからアーカイブされました2017 年 10 月 3 日に取得{{cite web}}: CS1 maint: bot: original URL status unknown (link);マウラー、ヴォルフガング (2016-06-03)。 「Der Plankalkül von Konrad Zuse」(ドイツ語)。ドイツ語での実装。 2016-06-03 のオリジナルからアーカイブ2017 年 10 月 3 日に取得
  15. ^ Giloi、Wolfgang K. [ドイツ語] (1990 年 11 月)、Konrad Zuses Plankalkül als Vorläufer moderner Programmiermodelle (ドイツ語)
  16. ^ abcdefghijklmnopqr Bauer, Friedrich L. ; Wössner, Hans (1972). 「コンラート・ツーゼの『プランカルキュル』:今日のプログラミング言語の先駆者」(PDF) . Communications of the ACM . 15 (7): 678– 685. doi :10.1145/361454.361515. S2CID  17681101. 2009年2月20日時点のオリジナル(PDF)からアーカイブ。(HTML)
  17. ^ Rojas, Raúl (2001). 「Plankalkül」(PDF) .コンピュータ百科事典とコンピュータの歴史. シカゴ/ロンドン: Fitzroy Dearborn Publishers . p. 634. ISBN 1-57958235-4. 2023年5月26日閲覧

さらに読む

  • ズーゼ、コンラッド(1943)。Ansätze einer Theorie des allgemeinen Rechnens unter besonderer Berücksichtigung des Aussagenkalküls und dessen Anwendung auf Relaisschaltungen [命題計算とそのリレー回路への応用を特別に考慮した普遍的な計算理論の開始] (未発表原稿) (ドイツ語)。 Zuse Papers 045/018。
  • ズーゼ、コンラッド(1948-12-06) [1948 年 11 月]。ドイツのホップフェラウ・バイ・フュッセンで書かれた。 「すべてのゲマイネンを計画し、アウフガベンを組み立てる計画を立てる」。Archiv der Mathematik (ドイツ語)。1 (6)。カールスルーエ / シュトゥットガルト / バーゼル、ドイツ: Birkhäuser Verlag : 441– 449. doi :10.1007/BF02038459. eISSN  1420-8938。ISSN  0003-889X。(9ページ)
  • Rojas, ラウール;ギョクテキン、キュネト。ジェラルド・フリードランド。クルーガー、マイク。クニス、デニス;オラフ、ラングマック(2000 年 2 月)。 Plankalkül: 最初の高水準プログラミング言語とその実装(PDF)。ベルリン、ドイツ: Institut für Informatik、Freie Universität Berlin、Feinarbeit.de。技術レポート B-3/2000。 2006 年 5 月 1 日にオリジナルからアーカイブされました。[2] (22ページ)
  • Bruines, Bram (2010-01-08). 「プランカルキュル」(PDF) (論文). 2023年11月2日時点のオリジナルよりアーカイブ(PDF) . 2023年11月2日閲覧(24ページ)
  • 「プランカルキュル・プログラム」.コンラッド・ツーゼ・インターネットアーカイブ(ドイツ語と英語). 2014年8月21日. オリジナルより2014年8月21日アーカイブ. 2017年10月4日閲覧(注: Java アプレットとドキュメントは計画されています。)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Plankalkül&oldid=1322193906"