無からのプログラミング
161
6
章
無からのプログラミング
本書では、計算のモデルを構築することで、計算を理解しようとしてきました。ここまで、さまざま
な制約を持った単純な架空の機械を設計することで、計算をモデル化し、異なる制約が異なる計算能
力を持ったシステムを生み出すのを見てきました。
5章のチューリングマシンは非常に興味深い機械で、複雑な機能に頼ることなく、複雑な振る舞い
を実装することができます。チューリングマシンはテープ、読み書きのためのヘッド、固定の規則集し
か備えていませんが、十分な柔軟性を有しており、すぐれたストレージ機能、非決定的な実行、その
他必要そうな機能を備えた機械の振る舞いをシミュレートすることができます。このことから、本格的
な計算には必ずしも複雑さを備えた機械は必要はなく、値を格納し、取得し、それを使って単純な判
断ができれば十分だということがわかります。
計算のモデルは機械のように見える必要はありません。プログラミング言語のように見えるモデルも
可能です。2章のSIMPLEというプログラミング言語は、確かに計算を実行することができます。た
だし、チューリングマシンのようにエレガントではありません。SIMPLEは、数値、ブール値、二項演
算式、変数、代入、シーケンス、条件分岐、ループなど、たくさんの構文を備えていますが、文字
列、データ構造、手続き呼び出しなど、実際のプログラムを書くのに適した機能はまだ備えていません。
SIMPLEを本当に役立つプログラミング言語にするには、かな ...