バベッジの憂鬱とヒルベルトの幽霊 — 『我ら、プログラマー』オンライン読書会 第2回目
『我ら、プログラマー』オンライン読書会の2回目。
バベッジと階差機関
今回は第2章のチャールズ・バベッジ(Charles Babbage, 1791-1871)の階差機関から。 FGO じゃないよ(笑)
『我ら、プログラマー』でも紹介されているが,再現された2号機の方は YouTube で見ることができる。
これの制作はめっちゃ大変だったらしい。
だが、制作した人は苦労の連続だったようだ。
ハンドルを少しでも回すと固まってしまうのだ。各部品は機械のタイミングに合わせて他の部品と完全に連携する必要があったが、バベッジはこのことを考慮していなかったようだ。この問題を把握していたかどうかも定かではない。
機械のデバッグ、連携、修理を少しずつ繰り返しながら、11か月が過ぎた。機械が固まるまでクランクを回し、ドライバーやプライヤーで内部をいじりながら、遊びの有無を確認することもあった。抵抗の場所を見つけるために意図的に部品を壊すこともあった。細かい再設計をすることもあった。
うわぁ。 デバッグの出来ない「コード」とか,どっかで聞いたような話で,過去のトラウマがフラッシュバックする!
著者の Robert C. Martin はバベッジをこう評している。
バベッジは、発明家であり、機械いじり屋であり、ビジョナリーであり、そしてプログラマーだった。残念ながら、我々の多くがそうであるように、彼は「完璧を善の敵」にしてしまった。我々の多くがそうであるように、彼は自分の設計を過信し、漸進的な考え方をほとんど、あるいはまったく考慮しなかった。我々の多くがそうであるように、彼はアイデアにすぐ夢中になり、80%まで考えることには満足したが、労力の80%を要する最後の20%になると、その熱意を維持することができなかった。
エジソンが「発明とは1%のひらめきと99%の努力である」と言ったそうだ。バベッジは1%の部分では偉大だったが、99%の部分を乗り越えることができなかった。
耳が痛いです,先生(笑) やっぱ(良くも悪くも)先人の業績に学ぶってのは大事なんだなぁ。
一方で,階差機関から発展させた(そして実現しなかった)解析機関の評価については次の第3章の冒頭にこう書かれている。
バベッジの解析機関の重要な点は、命令とデータが異なる場所に保存されていたことである。データは回転するカウンタで造られたレジスタに保存されていた。命令は木製のカードに穴としてエンコードされていた。
命令とデータの分離は、哲学的にも実用的にも合理的だった。命令は動詞だが、データは名詞だ。データは実行中に変化するが、命令は変化しない。つまり、両者は性質も目的も明らかに違う。もっと重要なのは、変更可能なメモリは高価であり、木製のカードに穴を開けるのは安価だったことだ。
命令とデータの分離は,この機械がただの計算機械ではないことを示している。
繰り返しになるが、バベッジは自身の機関で記号を操作できることに気づいてなかった、という主張は否定されなければならない。第一に、彼は解析機関にチェスをプレイさせるようにプログラムできると考えていた。つまり、チェス盤、駒、指し手を記号化できる能力があったということだ。また、機械が適切にプログラミングされていれば、記号代数も実現可能だと述べている。
この日、私ははじめて、文字の値を参照することなく機械に代数的な展開を実行できる可能性について、大まかではあるが漠然とした着想を得た。
バベッジは気づいていたのである。バベッジはプログラマーだった。
ヒルベルト・プログラムと不完全性理論
さて,第3章は20世紀に時代が移り,ダフィット・ヒルベルト(David Hilbert, 1862-1943)の登場から始まる。 あの「ヒルベルト・プログラム」のヒルベルトである(ゼノサーガじゃないよ)。 そして「ヒルベルト・プログラム」と言えばクルト・ゲーデル(Kurt Gödel, 1906-1978)の不完全性定理であろう。
カンファレンス最終日の円卓討論において、それはヒルベルトの「Wir mussen wissen. Wir werden wissen」の退官記念講演の前夜のことだったが、ゲーデルは静かに爆弾を投下した。「ゴールドバッハやフェルマーの命題がそうであるように、内容的に真であるが、古典数学の形式体系では証明できない命題がある」。言い換えれば、数学には証明できない真の命題が存在する。すなわち数学は不完全である、というものだった。
もちろんこれは数学がダメだということではなく,次の段階に進ませるものだ。
今のところは、そして本書の目的のためには、ヒルベルトの壮大な失敗の本質について考察することが重要である。ヒルベルトの夢を打ち砕いたゲーデル、チャーチ、チューリングの証明は、本質的にアルゴリズムに関するものであった。明確に定義された一連の手順で。データのまとまりを別のまとまりに変換する反復的な機構に依存していた。抽象的に言えば、それらはコンピュータープログラムであったと言える。ゲーデル、チャーチ、チューリングはプログラマーであり、ダフィット・ヒルベルトと彼が提唱した一階述語論理が、彼らのインスピレーションの源であった。
というところで,3章はまだまだ続くけど,今回の読書会はここまで。
ブックマーク
参考
- 我ら、プログラマー AdaからAIまで、コーダーたちの年代記 | ZEN大学出版会
- 我ら、プログラマー AdaからAIまで、コーダーたちの年代記 について、詳細・ご購入はこちらから
- Release 2026-06-29
- 評価
[Comment] 「ボブおじさん」による最新刊? かな。2世紀以上に渡るコンピュータとプログラマの歴史と回顧録。気楽な読み物として楽しめる。デジタル化希望!
Powered by linkcard
- 数学ガール/ゲーデルの不完全性定理
- 結城 浩 (著)
- SBクリエイティブ 2009-10-23 (Release 2014-03-12)
- Kindle版
- B00I8AT1D6 (ASIN)
- 評価
[Comment] 結城浩さんの本はよく整備された遊歩道を散歩するような気楽さと安心感がある。だから「フェルマーの最終定理」とか「ゲーデルの不完全性定理」とかいった難解そうなテーマでも,迷うことなく,しかも一歩ずつ歩みを進めてゴールまで辿り着けるのかもしれない。

