プログラムと思考(その2)

コンピュータのプログラムと思考とが似ているといったが、似ているどころではない。コンピュータのプログラムとは、ある種の思考を厳密に記述したものなのだ。

思考というのは、結局のところ、論理的関係で結びついた要素の体系の全体だ。教科書や自分で作るノートもそうだし、コンピュータプログラムもそうだ。その上、コンピュータプログラムの場合は、ノートと違って、その論理体系が生きている。つまり、入力を与えると、その論理体系で処理され、出力として出てくるのだ。

したがって、プログラミングで使われるさまざまなテクニック (たとえば、論理のサブシステムを関数という形にして、内部構造を隠蔽し、簡単な入力と出力のあるブラックボックスにしてしまう方法など) は全て頭の中で考える際のテクニックとしても使うことができる。

しかしながら、コンピュータシミュレーションを除いて、プログラミングを思考の補助手段として使う人はいないだろう。それは、プログラムをきちんと動作するようにするまでの手間が半端ではないからだ。

思考の場合は、ある程度あいまいさを残しながら先へ進めていくことができる。しかし、コンピュータプログラムの場合は、変数名が一字違っても動作させることができないのだ。

もし、記述のあいまいさを許容しながら動作するコンピュータプログラムがあれば、大いに思考の補助手段として活用できるのではないだろうか。

たとえば、次のようなインタープリターがあったら便利だ。概念設計のようなものもすぐにプログラムとして動作させることができる。変数は全てデフォールトの値を持っており、関数が呼ばれたときに必ず応答できる。詳細の設計でも変数名のデータベースを持ち、少々変数名の記述が間違っていても、本当の変数名を推測してしてくれる。また、条件の判断と代入の違いを文脈から判断して修正する。さらに、プログラムの論理構造を図示してくれたり、プログラムに関する真理表の起こりえる可能性を全てチェックしてくれる。

このようなインタープリターがあれば、考えるという作業がずいぶん能率的になるのではないかと思う。
[PR]
by tnomura9 | 2007-02-20 07:39 | 考えるということ | Comments(0)
<< プログラムと思考(その3) プログラムと思考 >>