視点
プログラミング言語と思考は不可分か
2010/01/14 16:41
週刊BCN 2010年01月11日vol.1316掲載
もしも言語と思考が不可分であれば、脳損傷などにより失語してしまったら、まったく思考ができないことになる。言葉を失っても知的な活動ができるという事実から、可分なところもあるに違いない。きっと脳の中で言語野から遠い部分(非言語的な右脳)になるのだろう。
私が最初に習い覚えた言語は日本語である。そして、初めて学んだプログラミング言語はフォートランであった。日本語は今でも私の母語となっているが、フォートランは母語にならなかった。プログラミングにおける私の母語はスモールトークである。ソフトウェアを開発する際に思考の道具として用いている言語だといっても過言ではない。
あれをやって、それをやって、これを返す、というような手続き的なプログラミング言語ではない。「Aさんこれをお願い」「その間にBさんはこれをやっておいて」「Cさん今の状況を知らせて」というようなメッセージの交信を用いてプログラムを創作するオブジェクト指向プログラミング言語である。
プログラミングにおける思考としての言語は、抽象化や構造化などの論理的なところで威力を発揮する。この面を強調すると、クラスが前面に出てきて、インスタンスとクラスの区別やインヘリタンス(インタフェースと実装を含む)などが主張され、データ抽象やアルゴリズム抽象の推進力となっている。今では多くのオブジェクト指向プログラミング言語が存在するが、この面を主力とするものが大半を占める。
一方、スモールトークにクラスは存在しない、すべてがオブジェクトである。便宜的に登場させるクラスをインスタンスにしてしまう機構を備える。データやアルゴリズムを抽象する推進力を保ちながら、さらに別なことを強いてくる。動的なメッセージ送受信の関係、そして、言語と環境が一体となった世界にプログラマを置くことである。
すべてをオブジェクトのつながり(関係網)の中に沈めてしまう。そこで必要になるのが図形的で位相的な能力である。冒頭に述べた非言語的な知的な活動に関わるのかもしれない。プログラミング言語とプログラマ思考が可分なところが攻められるのであろう。
- 1