Deep Breath

DIY, 科学, IT, 環境, LIFE

部分と全体 その1~ことばと世界とプログラミング言語

time 2015/11/23

 ”WIRED”は好きな雑誌の1つで、毎号楽しませてもらっているが、vol.19(2015.11)は「ことばの未来」がテーマで、今回もまたおもしろかった。若林恵さんの巻頭言(P.15)の中に、こんな件があった。(以下引用)
”つまり、文とそれを構成している語とは、互いに互いを定義しあう関係にあって、しかもどっちが先に定義されるでもなく、それが同時に行われてはじめて「文章」という均衡が生まれるというようなものではないか”

部分と全体が互いに作用して現実世界を構成している。これは、何も言葉に限ったことではない。この世の中は、ほぼ例外なく、構成要素は全体の影響を受け、全体は構成要素の影響で成立している。しかもその双方向の関係は、同時並行的に進行している。

最も簡単な例は経済活動であろう。個人や企業の経済活動の総体が世界の経済活動そのものであるが、その個人や企業の活動は、当然、世の中全体の影響を受けている。個々の低気圧の動きは、世界全体の気圧配置の影響で決まるが、その個別の低気圧の動きは、(気圧だけでなく温度や地形など複雑な条件で決まるもので)地球の裏側の気圧配置にも影響を与えている。

話を「ことば」に戻そう。自然言語には確かに、文と言葉の間に複雑な相互作用がある。それが自然言語の持つ、複雑さと豊かさと深みを生み出す一因であると言ってよいと思う。一方、同じ言語でも、コンピュータの言語はどうであろうか。私もシステム技術屋の端くれとして、Javascript、Java、Ruby、C、C++、Fortlan(!)、shellなどの言語でいくつか動くものを書いてきたが、プログラミング言語には、語と文章のような複雑な関係は、本質的に存在しないように思う。

プログラミング言語は、より形式的であり、もっと狭い範囲で正確な解釈が可能な言語である。1篇の小説を一冊読まないと、その「恋」と言う言葉を定義できないようなもの、あるいは、ある概念の総体としての「語」の集合体が、全体の文脈を作るようなものとは、本質的に異なる。呼び出されるメソッドは、言語処理系の中で厳密に検索され、曖昧性がない。変数にバインドされている値は、プログラムの実行行が現在の状態にある限り、必ず1つに決まり、実行が終わるまで分からないなどと言うことはありえない。ただし、長い、ひと塊りのプログラムモジュールが、協調して正しく動く様は、1冊の小説を超える美しさがあると感じることも、また確かではあるが。

コンピュータで自然言語を扱いにくくしている主な要因は、自然言語とプログラミング言語の間にある、このような、アナログな概念 vs. デジタルな厳密性のギャップにあるように思う。もちろん、その差を生み出しているのは、自然言語を扱っている、「脳」と、プログラムを扱う、有限状態機械・ノイマン型コンピュータというアーキテクチャの違いではあるのだが。

自然言語との違いと言えば、プログラムを書いて、計算機を思い通りに動かす楽しみと言うのもある。これは自然言語では味わえない。今では、小さな板に向かって、「オッケーグーグル」とか言うと、近くのおいしいイタリアンのお店を教えてくれるようだけど、その程度。それなりに単純で便利な使い方だとは思うけど、逆に自然言語のもつ深みを忘れ去るような方向に行かなければよいが、と老婆心ながらに思う。
2015.11.23(月)
写真:Javascriptサンプルプログラム・・・Fibonacci数列

down

コメントする




Toshi's Profile

会社員(製造業・雇用延長)。元SE、元大学非常勤講師、元ロルファー。DIYと散歩とメモが趣味。Moleskineを持ち歩いている。愛知県岡崎市在住。
toshi@ueba.sakura.ne.jp
DIY作品集はこちら