2024年のプロデル改良点まとめ

  • 公式サイトが引っ越しました
  • 条件文の「もし」の省略と、末尾は「そして」へ
  • 大きければ,小さければ,超えれば,満たせばの追加
  • 添字の基が0からとなる#記号
  • TTSneo風の関数定義
  • 代入文の右辺が定数の時に分かち書き不要に

※記事はプロデル1.9.1288、スミレ畑1.9.1273時点で有効な内容です

アドレスが変更になりました

今年から新しいドメイン(irelang.jp)に引っ越ししました。
お気に入り・ブックマークの変更やリンク先の変更をお願いします。

https://produ.irelang.jp

条件文の「もし」の省略と、末尾は「そして」へ

これまでプロデルの条件文はもし□ならもし終わりという形が定番でした。ただこの表記は冗長な所がありました。

去年末のアップデートでは、条件文のもしを省略できるようになりました。今年はさらに『もし終わり』の代わりとなるそして句を採用しました。今後は『□なら』~『そして』という表記となり、かなり短く書けるようになります。

また、繰り返し文も同様に『繰り返し終わり』の代わりに『そして』を使えるようになりました。今後は『繰り返す』~『そして』という形で短く書けるようになります。

※コンソール
総数は100
データは、空の配列
Xを2から総数まで1ずつ増やしながら繰り返す
  データのX番目は1
そして

Xを2から総数まで1ずつ増やしながら繰り返す
  データのX番目が1なら
    Xを出力して改行する
    YをXから総数まで1ずつ増やしながら繰り返す
      データの(X×Y)番目は0
    そして
  そして
そして

“大きければ”,”小さければ”,”超えれば”,”満たせば”の追加

プロデルでは、手順呼出しの動詞を仮定形で書くと、それをそのまま条件文の「なら」の代わりとして使えます。

「写真1.jpg」というファイルが存在すれば
    「見つかりました」と表示する
そして

今年のアップデートでは、比較演算子の一部だった「大きい」「小さい」でも仮定形を使えるようになり、『□が△より大きければ』、『□が△より小さければ』と書けるようになりました。
さらに『□が△を超えれば』、『□が△を満たせば』という表記も書けるようになりました。

Xが0より小さければ、Xは0
Yが1000より大きければ、Yは0
「購入金額は?」と聞いて合計金額とする
送料は650
合計金額が2000を満たせば、送料は0
「送料は[送料]円です。」を報告する
5だけ{「A」,「B」,「C」}をハノイする

【値:整数】だけ【塔:文字列の配列】を、ハノイする手順
    値が0より大きければ
        値-1だけ{塔(1),塔(3),塔(2)}をハノイする
        値&「番の円盤を」&塔(1)&「から」&塔(2)&「へ移動」&改行を出力する
        値-1だけ{塔(2),塔(1),塔(3)}をハノイする
    そして
終わり

このように比較演算をより日本語らしく書けるようになりました。

正直、大きければ,小さければに関しては大小比較演算子<,>を使う方が圧倒的に短く書けます。ただビジネスロジックを書く時や、アルゴリズムを書く時などは、むしろ日本語の方が可読性が高いこともあるかもしれません。そのような期待でサポートしています。

添字の基が0からとなる「#」記号

プロデルの配列では、伝統的に添字が1から始まります。
この仕様は『配列の1番目』、『配列の2番目』と日本語らしく表記できる利点があるものの、主要のプログラミング言語が0から始まることで、アルゴリズムの移植が簡単にできないなどの点がありました。

そこで次のような「#」記号を使うことで、添字が0からはじまる配列アクセスができるようにしました。

一覧は{1,2,3}
一覧#0を報告する
一覧#2は30
一覧を報告する

TTSneo風の関数形式

名詞手順について、TTSneo風の関数定義をサポートしました。
引数を多く必要とする演算に使用できます。
なお、この関数形式では戻り値を必ず返す必要があります。戻り値をなしとすることや、式以外で呼び出すことはできません。

Vは、演算(2,3)
Vを報告する

演算(X,Y)の手順
    X*Y+1を返す
終わり

代入文「は」の分かち書き省略

これまで代入文のは、「、」やスペースで分かち書きすることが必須でしたが、解析に支障が無いケースで省略可能となりました。

「は」の分かち書きが省略できるケース

右辺を、次の式で単独に書く場合です。

  • 数値定数(123, 3.14 など)
  • 文字列定数/文字列式(「こんにちは」「現在[時刻]です」など)
  • 配列定数 ({1,2,3}など)
  • 真偽値 (,,,×)
  • 無定数 ()
  • ブロック文 (『』)
  • 丸括弧 ( ),四角括弧[ ]
値は123
内容は「こんにちは」
一覧は{1,2,3}
結果は×
項目は無
結果は(A+B)

省略できないケース

右辺が次の場合です。

  • 変数 (,内容,X,Yなど)
  • 計算式 (A+Bなど)
  • 手順呼出し式
  • 色定数 (,黄色,など)
  • 列挙値定数 (なし,固定 など)
値は、X
値は、A+B
結果は、1から10までの乱数
テキストの色は 赤
窓の種類は 固定

少しでも魅力的に

これまでプロデルの文法は、多少の冗長な記述を許容して、日本語らしさやプログラムとしての読みやすさを優先してきました。

今後は、プロデルの日本語プログラミングらしさを保ちつつも、プログラムとして簡潔さや、プロデルを知らない人が初めて見た時に感じる、魅力度を上げられるかどうかも、大切にしていきたいと思います。

  • いいね (4)
  • 続編を読みたい (0)

コメントを残す