プロデル2.0.1337での演算子の優先度に関する仕様変更のお知らせ

プロデルVer.2.0.1323からVer.2.0.1337にかけて、新しい演算子を追加し、一部の演算子の優先度を変更しました。

新しい演算子

ビット演算やシフト演算のための演算子を追加しました。以前から同じ演算するための手順が用意されていましたが、記号で簡潔に書け、長整数での演算も可能となりました。

演算子の優先順位の変更

次の演算子について、Ver.2.0.1332からVer.2.0.1337にかけて、優先順位を仕様変更しました。

  • 符号 (-)
  • 割り算の余り (%)
  • 文字列の連結 (&)

この意図した仕様変更により、上記の演算子を組み合わせた式の計算結果が最新版では変化する場合があります。この場合、プログラムの修正が必要です。

影響がある例

次のプログラムのように、上記の演算子を含む複数の演算子を組み合わせた式をカッコを使わずに書いた場合に、解釈が変わるケースがあります。

※プロデル 2.0.1332
A=2*3%4
Aを報告する  // 6
※プロデル 2.0.1338
A=2*3%4
Aを報告する  // 2

今回の演算子の優先順位の変更の理由は、C言語やVBAといった一般的なプログラミング言語の仕様に合わせ、標準的な言語とのギャップを無くすためです。長年ご利用のユーザ様には、大変ご迷惑をお掛けいたします。

一方で次のような式をカッコを使わずに書けるようになりました。ご活用ください。

※プロデル 2.0.1337
2*-3を報告  //右辺に符号(マイナス)が使える
「1+1は」&1+1&「です」を報告  //文字列と計算式を組み合わせる

プロデルで使える演算子や優先度は、マニュアルに記載いたしました

互換性再現について

次のようにプログラム冒頭で「※プロデル」プリプロセッサを使うことで、以前のバージョンと同等の優先度で解釈されます。作成したプログラムをすぐに修正できない場合にご活用ください。

※プロデル 2.0.1332

プロデルプリプロセッサは、仕様変更前の挙動を最新バージョンで再現するための機能です。指定したバージョンの実行環境で実行するためのオプションではありません。また、今後の内部仕様の変更などの理由で、一定期間が経過した後に互換性再現を廃止する可能性があります。

謝辞 割り算の余り(%)の優先度に関してshogo314さまからのフィードバックを参考にしました。ありがとうございました。

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

コメントを残す