2018-02-06

プログラミング言語と言文一致

自然言語における話し言葉と書き言葉の違いは、
プログラミング言語におけるインタプリタ型と
コンパイラ型の違いに似ているように思う。
いずれも、前者では個々のやり取りごとの小さな
構造を頼りに内容を把握していくことが多いのに
対し、後者では全体を通じて設定された大きな
構造を軸に内容を把握していくことが多い。

プログラミング言語を「書く」行為が、自然言語を
「話す」ことと「書く」ことの両方に似ざるを得ない
のに対し、プログラミング言語を「読む」行為は、
自然言語を「読む」ことだけに似ることができ、
自然言語を「聞く」こととは似ずにいられる。
この非対称性があるために、プログラミング言語の
「書きやすさ」が「話しやすさ」を意味しながら、
「読みやすさ」が、「聞きやすさ」ではなく「読み
やすさ」を意味することで、各々のプログラマに
とってのプログラミング言語のよさが変わるのだと思う。

自然言語について言えば、明治時代の言文一致運動で、
文体としては書き言葉にも口語体が普及したが、
話したことを読めるようにするには何かしらの編集が
必要であり、文の構造としては、やはり書き言葉には、
話し言葉とは違った書き言葉としての構造がないと、
読みづらいように思う。
それはプログラミング言語でも同じだろう。
編集を経ていないコードは、編集を経ていない文章と
同じように読みづらい。
@yukihiro_matzが、
と言っているのは、そういった編集を不要にするような
制限を設定することはできないということだと思う。

この編集はlintのようなものよりもさらに大々的な
編集になるはずで、この意味でのエディタはVimや
Emacsではなく人間がやるしかないのが現状であるが、
自然言語に比べれば、プログラミング言語の方が
実装しやすいように思う。

No comments:

Post a Comment