はじめに
以前「日本語プログラミング言語が必要な理由」という記事を書き反響を頂きましたが、今回は実際に開発・公開している日本語プログラミング言語「プロデル」の条件文の言語仕様に関する話です。
プロデルはWindowsメインですが、同一の言語仕様を持ちLinux,macOSも対象にした「スミレ」という姉妹言語もあります。Webブラウザ上で動作する「スミレ畑」では気軽に動作を確認できます。
条件文を「もし」と書くこと、やめます
プロデル1.9.1189以降では、条件文の予約語である「もし」を省略できるようになりました。プロデルでは次のように条件文を書けます。
「数値を入力してください」と聞いて値とする
値が10以上なら値は、10
値を出力する
ファイルパスは「C:\data\data.csv」
ファイルパスというファイルが存在しなければ『
ファイルパスに空を保存する
』
そもそも「もし」が不要となった
条件文は、条件分岐を表す「なら」,「ならば」もしくは仮定形の動詞があれば、そこに書かれた式文の真偽値によって、条件分岐します。
これまで歴史的経緯からASCII系プログラミング言語でよく使われる「if」を単純に置き換えた「もし」という語を条件文に使ってきました。最近はプロデルの構文解析機能で動詞の仮定形を判別できるように改良したことで、条件文と判断するために「もし」と必ず書く必要はなくなり、省略可能にできました。このように動詞の仮定形を条件文とみなす、という日本語の文法上の特徴をプログラミング言語の仕様に活かす所が日本語プログラミング言語の魅力です。
また、最近はAtCoderのコンテストや、東京大学のコンピューター系サークル主催のコードゴルフ大会で、プロデルが参加言語に選択できるようになるなど、プログラミング競技やコードゴルフの分野でも異色枠(?)で採用されるケースが徐々に増えてきています。特にコードゴルフの分野では、コードのバイト数をいかに減らすかにしのぎを削っていますので「もし」を削ることは有用だと思っています。
引き続き「もし」も使えます
もちろん、これまでのプログラムとの互換性を維持するために、今後も条件文で「もし」を使うことができます。
ファイルパスは「C:\data\data.csv」
もしファイルパスというファイルが存在すれば
ファイルパスを開く
もし終わり
プロデルのような日本語プログラミング言語に慣れ切った人からすると、例に示したように「もし」を書いた方がプログラムの可読性が良いかと思います。「もし」が書かれていた方が読みやすいと思う場合には、これまで通り使うことができます。
また「もし終わり」については、代替となる表記が思いつかないので、そのままです。プロデルの文法を考える上では構造構文をどのように表現するかは悩ましい課題です。
おわりに
今回は、日本語プログラミング言語の良さを魅せるために「もし」を使うことをやめることにした話でした。
プロデルでは、日本語プログラミング言語らしいプログラムを考える上で「もし」文のように慣れて当たり前になってしまった構文についても再考し、試行錯誤しています。