プログラミング言語研究の動機

2016年11月7日(2017年7月24日修正)

既存の言語では,我々の頭の中のイメージをそのまま表現できないことがある. このような不都合は,我々が頭の中でおこなっている抽象化を,言語では表現できないときに生じる. このような抽象化を表現可能にする新しい構文を発見して,言語に組み込むことができれば,この問題は解決される. 実際,プログラミング言語について,このような抽象化をひとつ見つけて,作りはじめたのがEgisonである.

そもそも,すべてのイメージを表現できるような言語を作ることが本当にできるのかという問題は非常に難しい. というのは,我々の頭の中のイメージは,対象に対する我々の理解が深まると同時に変化するものであるからである. その変化と同時に,我々にとって便利な表現も自然と変わっていく.

このことを実感するために,ある極端な例を考えてみる.

数の概念はすでに知っているけれども,たし算やかけ算の概念は知らないひとがいるとする. そのひとにとっては,10進法は理解不能な概念であり,10進表記もまったく理解不能な表記である. しかし,たし算やかけ算の概念とその性質をある程度知っているひとにとっては,10進表記は非常に便利で,直感的な数の表現である.

たし算・かけ算を知らないというのは極端な例に思うかもしれない. しかし,我々がまだ知らない重要な概念は科学史をふりかえってみるとまだまだあってもおかしくない. このような概念が発見され,自然に対する我々の認識が深まれば,それを表現するために新しい表記法が言語に生まれる. 逆に,このようにして生まれた新しい表記法は我々が自然をより深く理解することを助け,その結果,さらなる新しい表記法が生まれる. このように,表記法の進化と科学の発展は表裏一体の関係にある.

ゆえに,表記法について研究することには大きな意義があるだろう. 「新しい表記法を見つけるための一般的な方法はあるのだろうか?」,「よりよい表記法が満たす一般的法則はあるのだろうか?」,「表記法の表現力を測る一般的な方法はあるのだろうか?」など興味深い問題はいくつも存在する. これらの問題の答えが見えたとき,まったく新しい世界観が生まれると筆者は期待している. 新しいプログラミング言語を作ることをとおして,これらの問題の答えに近づきたいというのが,Egisonを作ったそもそもの動機である.


This website in other langauge: English, 日本語