プログラミング言語は自然言語と本質から異なるのか

わたしは小説家になる以前、8年間ほどプログラマーとして働いていまして、こういう思考を始めると止まらないところがあります。コンピューター言語と小説の言語、自然言語は違うのか、という質問はよくされるのですが、これは本質的に異なります。プログラミング言語は人が機械を使役するためのものですから、すべてが命令形に則っています。

「~しろ」「~せよ」のみで、そこにコミュニケーションは存在しない。だから自然言語の対極の、さらに向こう側にあるとすら言っていいと思います。

だからコンピューターの言語が直接的に小説の言語に影響を及ぼすケースは考えにくいのですが、プログラマーとしての経験は、小説家としての自分に大いに役立っています。

http://wired.jp/2015/12/30/interview-yusuke-miyauchi/2/

命令もまたコミュニケーションの一形態であり、人間どうしのコミュニケーションとは大きく形態が異なるとはいえ、それが「本質的」差異だとはとても思えない。コンピューターというものが人間に使役される存在と見なされているにせよ、現に数多くのプログラミング言語には“対話型環境”が備えられてきたし、また、プログラムに誤りがあれば、機械は時に饒舌にそれを指摘してきた。人間どうしのコミュニケーションと形態こそ異なれども、そこにはある種のコミュニケーションが確かに存在していて、人間は機械と協働し、数多くのプログラムを作り上げている。

それに、プログラミング言語は命令形しか含まないという認識自体、正しくない。以前にも書いたが、〈プログラムとは命令文の並び〉という観点から行われるプログラミングは、数あるプログラミング観の一つに過ぎない。(プログラミングにおける〈式〉についての考察 - Ryusei’s Notes (a.k.a. M59のブログ))論理型言語や関数型言語の系統を遡れば、分析哲学的な概念記述の試みにたどり着く。それは人間の言語を形式化したものであり、人間の営みとしての思考や計算の様式を記述するものだった。その流れを汲んでいるプログラミング言語は、確かに人間の言語と繋がりを持っているはずだ。

私は、プログラミング言語自然言語を「本質的に差異のあるもの」として見るより「連続性を持ったもの」として見る言語観の方が好きだ。そして、その連続性を活用して、双方の言語の世界を広げ、あるいはコミュニケーションへの理解を深めていきたいと思っている。