言葉の機能
コンピュータのプログラムを組んでいると、しきりに思うことがある。一体、このコードをコンピュータは理解しているのだろうか?と。コーディングの段階では、簡単な英単語や数字の羅列であるが、こいつにコンパイルをかければ、コンピュータに通じる言葉となって命令できる。そして、確かに意図した動きをするのである。それをもって“理解している”といって良いのか?
人間の場合はどうだろう?人間は言葉を使うが、脳内ではやはり言葉以外の認識プロセスが走っているはずである。つまり、言葉というコードが、脳内ではやはりコンピュータの機械語のような姿でそれが振舞っているということである。そのプロセス自体は私たちの認識に現れない。
コンピュータがプログラム言語の通りに動くことと、私たち人間が言葉を理解して行動すること、これらにどれだけの違いがあるだろうか。当たり前に大違いだ!と思っていたのが、プログラマなんてことをやっているうちに、やや鬱に近い状態でそんなことを思うようになってしまった...
ところで、プログラム言語と一口に言ってもいろいろである。UNIXやWinでスタンダードになっているC/C++言語以外にも、BASIC、COBOL、Pascal、Fortran、最近ではJavaなんてのもトレンドである。これらは、それぞれ独自の予約語なり文法なりを持っている。人間の喋る言葉と同じである。
ただ、ベースになる概念は、ほぼ共通している。およそ、メインとなる流れからサブルーチンが呼び出される仕組みを持っておりこの一連の流れを“手続き”という。また、ある入力に対する出力が期待されるものを“関数”と呼ぶ。その内部では、分岐、ループなどを組み合わせてさまざまな動きを構築する。人間の喋る言語も、およそ主語、述語がメインルーチンとなり、それに様々な修飾語がつくことであらゆる表現を実現している。
ところで、ある言語は持っている概念、或いは機能なのに、別の言語にそれがないという場合がある。例えば“ポインタ”の概念はC言語系にはあるが、BASIC系にはない。これは、その言語で表現できるもの、実現できるものが狭められている、ということになりそうである。BASICでも何とかポインタもどきの処理は造ることはできるが、かなり遠回りの処理になる。
人の喋る言語にも、そのようなものがあるだろうか、と考えてみたことがある。例えば、英語にあって日本語にはない概念、或いは機能、そんなものはあるだろうか?もしあるとすれば、もしかすると英語圏の人々の方が、日本語をネイティブにしている私たちよりももっと高度な思考ができているのかもしれない。
例えば、私が何とか英語を習得したとする。しかし、私は日本人なので、英語を理解しようとするとき、それを一旦日本語に翻訳して理解することになる。その時点で、その英語が本来持つ意味が失われてしまう。海外在住経験のある人が、英単語を訳さずそのまま書いたり喋ったりすることがあるが、あれは、日本語にすると何か違うぞ、という直感的なものなのだろうと思う。
「アプリオリ(A priori)」という言葉がある。これは、日本語に訳すなら「経験によらない知覚」などとなるらしいが、認識論学者などにいわせると、これは本来の意味を言い得ていないそうである。先天的、優先的、非経験的、非後天的、いずれもあてはまらない。おそらくこのような日本語を組み合わせることで、何とかその意味に近似させることはできるだろうが、それをたった一言で表現して理解できる言語を持っている方が、そのような考察をするにあたって経済的だろうなぁ、などと思う。コンピュータプログラムでいえば、最初からそのような機能なり関数が用意されているようなものか。
まてよ、それはその言葉の内容がブラックボックスになっているということか?
2001/01/23
[ MENU ]