Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

日本語プログラミング言語「プロデル」「スミレ」で湯婆婆を実装してみる

日本語プログラミング言語「プロデル」とWebブラウザで動作する「スミレ」で動く湯婆婆を実装しました。

元ネタ

Javaで湯婆婆を実装してみる

日本語プログラミング言語

日本語プログラミング言語は、古くから色々な実装があります。
プロデル/スミレは、TTSneoの後継として開発しているオブジェクト指向のプログラミング言語です。

日本語プログラミングは
「タイプ数がー変換がー・・・」
「日本語は曖昧だから・・・」
「初心者向け」
などと思われる方も多く
Qiitaをご覧の多くの方には、あまり魅力的には見えないかと思います。
こういうのが鬱陶しかったらごめんなさい。

プログラム

プログラムは、次の通りです。

字句が日本語ですので何をしているのか、何となくは想像できるかと思います。

湯婆婆.rdr
「契約書だよ。そこに名前を書きな。」と聞いて名前とする
もし名前が空なら名前は、「名無し」
Nは、名前の文字数の乱数
名前の(N+1)文字目から1文字取り出して新しい名前とする

「フン。[名前]というのかい。贅沢な名だねぇ。
今からお前の名前は[新しい名前]だ。
いいかい、[新しい名前]だよ。
分かったら返事をするんだ、[新しい名前]!!」と表示する

シンタックスハイライトがある方が読みやすいので、コードのスクリーンショットも併せて貼っておきます。

image.png

使用する主な文法は、次の通りです。

  • 代入文: <式>して<変数名>とする | <変数名>は、<式>
  • メソッド呼び出し: {<式><助詞>}<動詞>
  • 条件文: もし<式>が<式>なら<文>

特徴的な箇所は、3行目の"名前の文字数の乱数"の部分です。

"名前"は、文字列クラスのインスタンス変数です。
"文字数"は、文字数を返す文字列クラスのプロパティ(設定項目)です。
つまり"名前の文字数"と書くと、名前に保持されている文字列インスタンスで文字数プロパティにアクセスします。

"乱数"は、"の"という名前付き引数(助詞)を持つメソッド(手順)です。
"名前の文字数"の評価値を"の"という名前の実引数として"乱数"メソッドに渡して、0からその引数の値未満の乱数を求めます。

日本語プログラミング言語に馴染みがないと、気持ち悪く見えてしまうかと察していますが、文法には明確なルールがあります。プロデル/スミレをはじめ日本語プログラミング言語は、形式言語の範疇で日本語の表記を用いたプログラムが書けます。

なお、2行目を"//"でコメントアウトして実行し、[キャンセル]ボタンをクリックするとクラッシュします。

プロデルは、Windows向けの実行環境です。
https://rdr.utopiat.net/

スミレは、Webブラウザ(Blazor)で動作する実行環境です。こちらはAndroidやmacOSでも動作します。
https://sumire.utopiat.net/play/

image.png

プロデル/スミレという日本語プログラミング言語もあることを知ってもらえたら幸いです。

jpl_produire
日本語プログラミング言語「プロデル」「スミレ」の記事を投稿しています。
https://rdr.utopiat.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away