Column 22年5月 英語以外でプログラミング

プログラミング言語は人工言語

プログラミング言語は、コンピュータに仕事をさせるために、コンピュータが解釈可能なように作成された人工言語です。英語をベースに作られたものが多いため、英語を母語としない人にとっては、ハードルが高い面は否めません。コンピュータが英語圏で発展してきたことを考慮に入れても、英語以外のプログラミング言語がほとんどないのはなぜでしょうか。

コンピュータはあいまいさを許さない

自然言語は、長い間人々によって使われてきたために、原則を外れた文法や用法が多く生まれてきました。よく上げられる例として、「象は鼻が長い。」という文の主語は何か、という問題があります。人間同士であれば意味が通じればよしとしますが、コンピュータには通じません。あいまいさを多く含む自然言語は、そのままプログラミング言語として使えないのです。
そのため、自然言語をプログラミング言語のベースに据える際には、まずあいまいさを排除する必要があります。しかし、あいまいさを排除することで、自然言語らしさが薄れてしまい、不自然さが生じてしまいます(これが、英語が得意な人でも、プログラミングが得意とは限らない理由の一つです)。あいまいさを排除しながら、できるだけ自然言語と同じ感覚でプログラミングに挑戦できるものを2つ紹介します。

日本語でプログラミング

日本語をベースとしたプログラミング言語に、「なでしこ」があります。プログラム例をみると、やはり普段私たちが使っている日本語に比べて、多少不自然な点があるのはやむをえません。しかし、英語ベースのものより処理内容が理解しやすく、母語によるプログラミングの利点が感じられます。

なでしこ:日本語プログラミング言語
https://nadesi.com/

日本語プログラミング言語「なでしこ」に関する解説
https://note.com/ipsj/n/na3c57ceeffcf

漢文でプログラミング

現代の言語ではありませんが、漢文(昔の中国語)をベースとしたプログラミング言語があります。文法面でプログラミングとの親和性が高く、漢文の知識があればとっつきやすい言語です。縦書きのプログラムというのが新鮮です。

漢文風のプログラミング言語「文言(wenyan-lang)」がめっちゃエモいと話題に
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1225211.html

文言(wenyan-lang)
https://github.com/wenyan-lang/wenyan

プログラムを理解するために

プログラミング言語のベースとなる自然言語が何であれ、基本的には同じような構文が使われています。これは、コンピュータと人間とが相互に歩み寄った結果、今の地点に着地しているということです。今後コンピュータの発達が進めば、相互理解のポイントはさらに人間寄りになる可能性がありますが、それにはコンピュータ側にあいまいさを認めるだけの度量を求めることになります。
コンピュータを融通が利かないキャラクターに見立ててプログラムを読むと、コンピュータの気持ちに少し近づくことができるかもしれません。