日本語プログラミング言語「プロデル」とWebブラウザで動作する「スミレ」で動く湯婆婆を実装しました。
元ネタ
日本語プログラミング言語
日本語プログラミング言語は、古くから色々な実装があります。
プロデル/スミレは、TTSneoの後継として開発しているオブジェクト指向のプログラミング言語です。
日本語プログラミングは
「タイプ数がー変換がー・・・」
「日本語は曖昧だから・・・」
「初心者向け」
などと思われる方も多く
Qiitaをご覧の多くの方には、あまり魅力的には見えないかと思います。
こういうのが鬱陶しかったらごめんなさい。
プログラム
プログラムは、次の通りです。
字句が日本語ですので何をしているのか、何となくは想像できるかと思います。
「契約書だよ。そこに名前を書きな。」と聞いて名前とする
もし名前が空なら名前は、「名無し」
Nは、名前の文字数の乱数
名前の(N+1)文字目から1文字取り出して新しい名前とする
「フン。[名前]というのかい。贅沢な名だねぇ。
今からお前の名前は[新しい名前]だ。
いいかい、[新しい名前]だよ。
分かったら返事をするんだ、[新しい名前]!!」と表示する
シンタックスハイライトがある方が読みやすいので、コードのスクリーンショットも併せて貼っておきます。
使用する主な文法は、次の通りです。
- 代入文: <式>して<変数名>とする | <変数名>は、<式>
- メソッド呼び出し: {<式><助詞>}<動詞>
- 条件文: もし<式>が<式>なら<文>
特徴的な箇所は、3行目の"名前の文字数の乱数"の部分です。
"名前"は、文字列クラスのインスタンス変数です。
"文字数"は、文字数を返す文字列クラスのプロパティ(設定項目)です。
つまり"名前の文字数"と書くと、名前に保持されている文字列インスタンスで文字数プロパティにアクセスします。
"乱数"は、"の"という名前付き引数(助詞)を持つメソッド(手順)です。
"名前の文字数"の評価値を"の"という名前の実引数として"乱数"メソッドに渡して、0からその引数の値未満の乱数を求めます。
日本語プログラミング言語に馴染みがないと、気持ち悪く見えてしまうかと察していますが、文法には明確なルールがあります。プロデル/スミレをはじめ日本語プログラミング言語は、形式言語の範疇で日本語の表記を用いたプログラムが書けます。
なお、2行目を"//"でコメントアウトして実行し、[キャンセル]ボタンをクリックするとクラッシュします。
プロデルは、Windows向けの実行環境です。
https://produ.irelang.jp/
スミレは、Webブラウザ(Blazor)で動作する実行環境です。こちらはAndroidやmacOSでも動作します。
https://sum.irelang.jp/play/
プロデル/スミレという日本語プログラミング言語もあることを知ってもらえたら幸いです。