プロデル1.7.1121-1123,1127で大きく次の点を修正・変更しました。
[修正] 数値比較の時の型変換の仕様 (4/26)
数値型の比較においての自動的な型変換に関する動作を変更しました。左辺と右辺とが異なるデータ型の場合は、四則演算の時と同様、左辺と右辺のどちらかのデータサイズが大きい方のデータ型に型変換してから比較されます。
データ型の大きさは、小さい順に、
短整数, 整数, 浮動小数, 長整数, 倍浮動小数, 固定小数
です。
[修正] 浮動小数から固定小数への型変換時の丸め誤差の仕様変更 (4/27)
変数への代入などで、浮動小数/浮動小数倍から固定小数へ型変換する時に、小数の有効桁数(8桁/15桁)で丸められる挙動でしたが、表記通りに変換するように仕様変更しました。
[修正] マニュアルのサンプルの修正 (4/21)
マニュアルの一部サンプルについて、構文エラーや実行エラーとなってしまう現象の修正やプログラムの表記を修正しました。
[修正] 文字列型の変数への型変換の対応 (4/21)
明示的に型宣言した文字列型の変数へ値を代入する際に、代入する値が文字列へ型変換されない現象を修正しました。これは、マニュアルの「型変換」の項目の説明どおりの挙動となるように修正するものです。手順の実引数についても同じように型変換されます。
なお1.6までは型宣言通りの値へ変換されない、1.7.1122以前では無となってしまう挙動となっておりました。
【あ:文字列】は、123
あを報告する //文字列
【い:文字列の配列】は、{123,456}
いを報告する //文字列の配列
[修正] 日時形式と日時期間形式の変数への型変換の対応 (4/21)
明示的に型宣言した日時形式型と日時期間形式型の変数へ文字列を代入する際に、型変換されない現象を修正しました。これは、マニュアルの「型変換」の項目の説明どおりの挙動となるように修正するものです。手順の実引数についても同じように型変換されます。
【内容:日時形式】は、「2005年1月1日 1:15」 内容の曜日を報告する
[修正] 序数詞の実補語を含む一部手順が呼び出せない現象の修正 (4/21)
表配列の手順など、一部手順の序数詞を含む実補語が実行されない現象を修正しました。
1番目を処理する
2列目を処理する
3行目を処理する
【番号】番目を処理する手順
「[番号]番目を処理しました」を報告する
終わり
【番号】列目を処理する手順
「[番号]列目を処理しました」を報告する
終わり
【番号】行目を処理する手順
「[番号]行目を処理しました」を報告する
終わり
[新機能] 配列の「追加する」「挿入する」の戻り値有無の区別
配列の「追加する」「挿入する」手順について、戻り値の有無で別々の手順に分けて定義しました。これより、対象の配列へ直接追加するか、追加した新しい配列を作るかどうかを、式で呼び出すか、文で呼び出すかで区別するようになりました。
例えば次のように、文として手順を呼ぶか、式として手順を呼ぶかで、対象配列の内容が変わります。
//文として手順を呼ぶ 一覧1は、{「AAA」} //既存の配列にABCを追加される。一覧1が変化 一覧1に「ABC」を追加する 一覧1を報告する //式として手順を呼ぶ 一覧2は、{「AAA」} //ABCを追加した新しい配列が生成される。一覧2は変化なし 一覧2に「ABC」を追加して報告する 一覧2を報告する
これは以前お知らせした言語仕様上の新機能により、数値型の種類の「足す」「引く」手順の戻り値の有無で挙動が変わる改良点と、同様の改良となります。
これまでは、「追加する」「挿入する」手順が呼び出される度に、必ず対象の配列が再生成されるといった内部処理の効率が悪い状態となっておりましたが、今回の更新で最低限の生成のみとなり、パフォーマンスが改善されます。
基本的には、この改良に伴う既存のプログラムの修正は必要ありません。
ただし、これまで実質的に無意味だった返り値を使わない「追加する」手順の呼出しが、最新版では、対象配列に対して意味のある効果があるため、このような無意味だったプログラムが残っている場合などに、意図せず挙動が変わる可能性があります。(プログラムが適切に書かれていれば、問題が起きる可能性は低いです)
[変更] 要素型を明示したときの配列の型変換(キャスト)の仕様変更
これまで、変数宣言で配列要素のデータ型を明示して宣言した時でも、それによらず別の型の要素値を代入できてしまう場合がありましたが、最新版では、要素への代入時に宣言の要素のデータ型へ型変換する、本来期待される挙動へ仕様変更しました。
変数宣言と異なる要素のデータ型の配列の代入時には、配列自体が自動的に型変換されます。次のプログラム例では、文字列の要素値や「無」が整数値に変換されます。
【一覧:整数の配列】は{「あ」,無,3} 一覧を報告する // 1.7.1120以前 {あ,無,3} // 1.7.1121移行 {0,0,3}
この変更は、変数宣言で配列要素のデータ型を明示しているプログラムでは、過去のバージョンと異なる挙動となります。なお、変数宣言で要素のデータ型を明示していない場合(この場合が多いと思います)には、この仕様変更は影響しません。
[修正] 「手順が決められない」と表示される現象の修正
特定の状況下でプログラムに誤りがないと思われる状況でも「手順が決められない」旨のエラーが表示される現象を修正しました。
具体的には、「報告する」「選択する」手順など、基本物(汎用型)を引数として持つ手順を呼び出すときに発生する現象を修正しました。
[修正] メイン手順をプログラム末尾に書いた場合に構文解析に失敗する現象の修正
メイン手順(最初に実行されるはじめの手順)は、プログラムも冒頭もしくは、プログラム末尾のどちらか一方に記述できますが、メイン手順を末尾に書き、プログラム冒頭にコメントやスペースが含まれるプログラムを書くと、構文解析に失敗する現象を修正しました。
なお、構文解析が予期しない理由で失敗するとプログラム全体または一部が黒くなります。これは、プロデルデザイナでプログラムが消えてしまうことを防止するために、シンタックスハイライトが一時的に無効化されるためです。プログラム文を修正することでシンタックスハイライトは再開されます。
[修正] 特定の状況下で構文解析エラーとなる現象の修正
特定の状況下でプログラムに誤りがないと思われる状況でも、構文解析エラーが表示される次の現象を修正しました。
- 助詞「が」を含む手順で形式補語が正しく認識されず構文エラーとなる
- 「最前面」「選択」手順など同名の設定項目がある手順の呼出し文で構文エラーとなる
- 「データベースエンジン」種類の「トランザクションを開始する」手順の呼出し文が構文エラーとなる
[改良] 文字エンコードの自動判定ロジックの変更
「開く」手順や「HTTP」種類などのテキストファイルを扱う機能で利用されている文字コードの自動判定ロジックを変更しました。特にこれまでShift-JISとUTF-8とを正しく判別できない現象が時より発生しており、その状況を改善するための変更となります。
このロジック変更は、プロデルデザイナでプログラムを開く時にも反映されています。