あとがき
309
あとがき
さて、これで計算理論を巡る旅も終わりです。私たちはさまざまな能力を備えた言語と機械を設計
し、なじみのないシステムから計算を引き出し、コンピュータプログラミングの理論的限界へと飛び込
んでいきました。
特定の機械やテクニックを調べるだけでなく、より一般的な考えについても見てきました。
●
だれでもプログラミング言語を設計して、実装することができます。構文と意味論の基本的なア
イデアは単純ですし、退屈な詳細についてはTreetopのようなツールが面倒を見てくれます。
●
コンピュータプログラムというのはすべて、数学的なオブジェクトです。構文的には、プログラ
ムは大きな数にすぎません。意味論的には、プログラムは数学的関数もしくは形式的な簡約規
則によって操作できる階層構造を表現することができます。このことは、クリーネの帰納定理や
ゲーデルの不完全性定理といった数学由来のさまざまなテクニックや結果が、プログラムにも同
じように適用できることを意味しています。
●
私たちが当初「コンピュータがやること」と説明した計算は、自然の力のようなものだとわかり
ました。計算は人間による高度な発明であり、複雑なパーツを複数使って特別に設計したシステ
ムによってのみ実行できるものだと考えがちですが、それほど複雑には見えないシステムであっ
ても、計算が可能であることを見てきました。したがって、計算というのは、マイクロプロセッ
サ内部でのみ起こる不毛で人工的なプロセスではなく、それどころか、さまざまな場所や