日本語をベースとしたプログラミング言語

Latest topics > メソッド名は三人称単数形にするべきかどうか - outsider reflexに挙がっていた話題。

hoge.hasA()ならhogeオブジェクトが主語になるから、hasになるのが自然だよなぁ。

とブックマークコメントをつけたが、オブジェクト指向の場合は、対象となるオブジェクトを主語にとるのが通常なので、英文をベースとするプログラミング言語はSVO型になって三人称単数形になるのが自然なのだろう。

英語と違う語族をベースとした言語なんていうと思い当たるものが限られてしまう。参照元のエントリでも挙げられていたが、やはり思いつくのはなでしこ:日本語プログラミング言語だろうか。

いわゆるHello worldプログラムなら以下のようになる。

「こんにちは、世界」を表示。

ここでは主語が省略されているわけだが、オブジェクトに対する操作ではない場合は主語なしとなるのが自然なのだろう。

オブジェクトがある場合は以下のようになる。

挨拶ボタンとはボタン。
挨拶ボタンをクリックした時は
  「こんにちは」と言う。

宣言に続き「挨拶ボタン」を主語にイベント定義を行っている。*1

従来の英文ベースのプログラム言語を基準に考えれば甚だキモチワルイと感じるかもしれないが、日本人の思考からすればこういう語順で、主語であるオブジェクトに助詞がくっつくのが自然なのかもしれない。

こうした日本語をベースとしたプログラム言語を考えた場合、助詞というのはLL(n)で扱いやすいのかもしれないなぁと漠然と考えた。

なでしこの場合はまず、助詞でトークン分割されるらしい。そのため変数名には漢字やカタカナを使うのが一般的なようだ。*2日本語の表記システム自体が主語や動詞に表意文字を、助詞などに仮名を用いるというシステムであるわけだから、それをうまく利用していると思う。

日本語ベースの言語の入力方法

日本語ベースのプログラム言語はIMEをONにした状態、つまるところ日本語入力で変換しながら入力するものなのだなぁと思い知らされた。

一般的な英文ベースのプログラミング言語がキーボードから直接入力できる記号を駆使して表現を行っているのに対し、そんなことは一切考えていないところがすばらしい。

というか、むしろキーボードに刻印されているような記号を用いると逆にIMEのON/OFFが頻発してむしろ入力しにくいのではないだろうか。「≦」にしたって「しょうなり」と入力して変換するのがスマートに思う。半角「<=」だったらむしろ発狂ものだ。

*1:なでしこの特異なところは日本語ベースならではの指示語が使えるところではないだろうか。「それをクリックした時は」なんてプログラムが書けるのを見て私はとても驚いた。日本語としては主語の繰り返しは避けるのが自然だが、英文ベースのプログラム言語で"it"で既出のオブジェクトの操作をするなんて話は寡聞にして知らない

*2:ユーザーズWIKI - なでしこ:日本語プログラミング言語を参照。「なでしこの「助詞」に登録されていない平仮名」は変数名に使えるようだが、混乱するので避ける方がよいだろう