2025年は、コンパイル環境のパフォーマンス改善を中心に、プロデルの全般的な機能改善を行いました。また、細かな言語仕様の改善や不具合を修正しました。
過去バージョンで動いているプログラムは最新版でも変更無く動くようにリリース前テストを実施するなどして安定化に務めております。やむを得ず仕様変更がある場合には、本ブログにてお知らせします。
一方で既知の問題を解決したりフィードバックを反映したりするために、言語仕様には影響ない内部仕様を大きく改修しています。この改修により意図せず動作しなくなる・挙動が変わってしまうことがあります。
このような現象は指摘があるまで把握していない事がほとんどです。気がついた事がありましたら、ご面倒でもフィードバックをお願いいたします。
配列に関する仕様変更と改善
一般的なプログラミング言語と比べ、扱いづらかった配列の仕様を改善しました。
ジャグ配列、多次元配列への対応
変数宣言での型明示にジャグ配列を指定できるようになりました。可変長配列では指定した添字までの要素がその要素型で自動的に確保されます。
また、固定長の配列や多次元配列を扱う場合には「作る」手順で配列を作ります。作る手順で配列の型名の後に( )で、確保する要素数をあらかじめ指定します。要素数をカンマで複数指定すると多次元配列が作られます。
また各配列では、配列要素のデータ型を指定するとその要素型で要素に格納され、高速で便利です。
0開始の要素アクセス
「#」での添字指定(0から始まる要素アクセス式)の文法を変更しました。「#」で添字に演算式を指定する場合には括弧で囲む必要があります。

要素を「埋める」手順
配列に「埋める」手順を追加しました。配列要素を特定の値で初期化する用途に便利です。

要素代入時の型変換の厳密化
Ver.1.9.1299以前では、要素のデータ型を明示した配列であっても、状況により明示したデータ型と異なる値や配列を要素として格納できてしまう意図しない挙動がありました。Ver.1.9.1300以降、要素格納時には型変換が適用されます。
配列に関するその他の改善
- 配列の「探す」手順のパフォーマンスを改善しました。
- 配列の「合計」「最大値」「最小値」手順の結果を、要素型が数値の場合には、そのデータ型で求めるように仕様変更しました。
挙動変更を含む細かな修正
条件文と繰り返し文のパラメータ指定の厳密化
条件文と繰り返し文で条件に指定した式の結果が真偽値や整数値でない場合に、エラーとなるように仕様変更しました。 条件式は真偽値で、繰り返し文の回数や範囲値は整数で指定する必要があります。
なお、これまで通り文字列から真偽値や整数へ変換できる場合にはエラーにはなりません。型変換の規則についてはマニュアルにて対象となる種類の「型変換」欄に記載しています。

その他の仕様変更
- 「文字列」種類の「探す」手順の文字開始位置の仕様の変更
- CRC32のハッシュ値の計算方法をRFC1952(gzip)やRFC 2083(PNG)で採用されている方法と同じ仕様へ変更
- リストボックス種類の「選択番号一覧」が1番目から始まるように仕様の変更
- 「~という属性」文中にコメントを書くと、解析エラーとなるバグの修正
機能追加
「出る」文
「繰り返しから抜け出す」と同じ意味を持つ「出る」文に対応しました。

要素のデータ型の明示
配列に加えて、「辞書」「スタック」「キュー」種類について要素型を明示できるようになりました。代入時に、明示した要素型に変換されて格納されます。

シフト演算およびビット論理演算のための演算子
シフト演算およびビット論理演算のための演算子を増やしました。 ∨ ∧ ⊕ ¬ ≪ ≫ といった論理記号などをプログラムの演算子として採用しました。おそらくプログラミング言語で初です。
プロデルの演算子の一覧では、使える演算子や優先度をまとめました。
「比較する」手順
「比較する」手順を追加しました。

はじめの手順のオーバロード
はじめの手順の仮引数にデータ型を指定できるようになりました。

その他の機能追加
- ATAN2(y,x) / 座標アークタンジェント名詞手順を追加しました。
- 「優先度キュー」種類を追加しました。
- エラーの発生箇所を特定するエラーコードを順次採用しました。フィードバックなどの時に併せてご報告ください。
コンパイル環境のパフォーマンス改善
コンパイル環境での次のようなパフォーマンス改善を反映しました。コンパイル後の実行可能ファイルの実行速度も殆どの場合で大幅に速くなりました。
- 配列の複製・変換時のパフォーマンス改善
- 多次元配列のパフォーマンス改善
コンパイル環境固有の次の挙動も改善しました。
- 配列型の型変換に関連する不具合の修正
- 要素型を指定した辞書へのアクセスが失敗することがある現象の修正
- 余りがある除算(¥)が型によっては正しく計算されない現象の修正
- 負号の付いた式が、型の明示にかかわらず、常に倍浮動小数として扱われる現象の修正
- 文字列と数値との等価比較が、ランタイム環境と異なり、文字列比較されてしまうバグの修正
- 文字列の「~文字目」や「~文字目以降」で例外が発生するバグを修正しました。
プロデルデザイナ
プロデルデザイナでは次の点を改善しました。
- 「※コンパイル」を指定したプログラムでは「実行」ボタンからコンパイルと実行ができるようになりました。
- ランタイム環境と同様にコンパイル環境でも「報告する」手順の結果を「対話コンソール」へ出力するようになりました。
- バージョン指定のプリプロセッサ「※プロデル」に対応しました。
- プロデルデザイナで、Unicodeのラテン1補助の文字が文字化けするか同種の文字に置き換わる現象を修正しました。¥©®といった文字が使えます。
「プログラムの詳細設定」画面とコンパイルオプションの注釈
「プログラムの詳細設定」画面を追加しました。実行可能ファイルのアイコンの指定などが画面から設定できるようになりました。注釈(アノテーション)を詳細設定で設定できるので便利になりました。
なおプロジェクトモードの詳細設定もUI統一のため「ファイル」メニューへ移動しました。


「ウィンドウの設計」出力内容の変更
ウィンドウの設計の「初期化する」手順の生成内容を「作る」手順をすべて最初に実行するように仕様変更しました。
これにより初期化中にイベント手順が発生した場合に「中身が、無です。」のエラー発生を防止できます。また「移動順」が設定通りに適用されないことがある現象も解消しました。

ウィンドウの設計画面上で「表示」「有効」設定項目を設定できるように改善しました。

Visual Studio Code向けプロデル拡張機能をアップデートしました。
Ver.2.0.1353時点での文法・仕様に更新しました。 また、簡易的なコンパイル実行ができるようになり、コンソール環境、GUI環境問わず、すぐに実行できるようになりました。
以上です。ご活用ください。






