今日の記事は、まず45-50sさんの
コノ記事をお読み下さい。
スクリプはキレーだ!って方はパスして下さいまし。
尚、この記事は推測の域を超えずいわゆる迷信の部類に入るかもしれません。
予めご了承下さい。
VRM4スクリプトマニュアルのOverviewにこんな一文が
スクリプトは、レイアウターからビュワーを呼び出すときに「コンパイル」されます。
(中略)
このコンパイル段階で、ある程度の記述内容についての検査が行われます。
しかし、この検査は構文が正しいかどうかなど、テキストの正誤を中心とした検査のため、記述したスクリプトのプログラムそのものが正しいか判断することはできません。トライ&エラーでレイアウターとビュワーを行き来しながら正しい動作になるまで修正を行います。(この作業をデバッグといいます。) ビュワーは、明らかに間違っている命令については、無視します。(強制停止させるより、無視することで可能な限り動作を続行しようとします。)
一般的な用語として、
コンパイル段階で、ある程度の記述内容についての検査が行われます。<この時お馴染み?のエラー画面が出ますが、これをコンパイルエラーと言い
ビュワーは、明らかに間違っている命令については、無視します。<これを実行時エラーと言います。
個人的にはVRMというソフトの中で、これだけのスクリプトを用意していると言う事は凄い事だと思っていますが、コンパイル時のチェックが若干甘い所がありそうな事と、実行時にビュワーの動作を優先しエラーの発生がわからない為、返って混乱する事態に陥ったり難しく感じる一因になっている様な気もします。
では、コンパイルエラーは何を検出しているのか。
45-50sさんも仰ってる通り
>命令の並び方や、メソッド・オブジェクトの名称同士のつながりについてはチェックするが、それ以外は放置する、という理解で良いのでしょうか。
個人的には、その通りなのではないかと思っています。
命令の並び方<いわゆる構文が正しいか
メソッド・オブジェクトの名称同士のつながり<callやEventで参照するメソッドが存在しているか
放置する<チェックしない
という感じでチェックはされている様です。
話題の変数名の名称確認がされていない事を除けば?、コンパイル時にそれなりのチェックはされている様です?
例えばObject変数の格納等でも編成ObjectにレイアウトObjectを格納しようとすればエラーになります。(確か?)
I.MAGIC社も言っている通り「アセンブラ的手法の・・・」。
ということは低級言語(CPUの理解できる言葉に近いという意味)であるが故にある程度何でもできるし、ある意味エラーチェックも緩い所はあるけれど使用者の自己責任も強いられるとも言えます。
(ぉい、そんなスクリプトで良いのか・・・そもそもそこに問題があるのでは)
では高級言語(人の理解できる言葉に近いという意味)にした場合、コンパイラに多くの予算(時間)を掛けざるおえないし、コンパイル時間も低級言語より時間がかかります。
I.MAGIC社にとっても実験的な公開の域を超えていないのでは、とも推測せざるおえないのかな?
・・・将来はどーなるか?は良く分かりません。
次は、実行時エラーですが。
これはもー良く分かりません。
エラーをユーザに伝えてないのだから。
とはいえ
>強制停止させるより、無視することで可能な限り動作を続行しようとします。
という主旨は、VRMというソフトから考えれば理解できます。
そんな事より列車が走り続ける事を優先する方が大事ってことでしょう。
>明らかに間違っている命令については、無視
は、数値変数なら0を格納したりObject変数ならNullを格納し・・・迄しているかは分かりませんが、ビュワーを継続する為に、エラーが発生しても次のステップに継続していると思われます。
ユーザーに使わせる言語レベルにしても、コンパイラとビュワーの関係にしても温度差が激しくマダマダ扱い憎いのが現実のような気がします。
悪く言えば
OverViewの
テキストの正誤を中心とした検査のため、記述したスクリプトのプログラムそのものが正しいか判断することはできません。(中略)ビュワーは、明らかに間違っている命令については、無視します。
は
テキストの正誤を中心とした検査のため、記述したスクリプトのプログラムそのものが正しいか判断していません。(中略)ビュワーは、検査していない動作に関しては、無視又は異常終了します。
が正しい説明かもしれません。(そー書けない事は理解できますが)
というオチが書きたかっただけかもしれません(笑)
販売ソフトとしては致命的な部分もあるのかもしれませんが、発展途上と考えれば個人的には腹も立ちません。
が、マニュアルはもう少し充実して下さいね。I.Magicさんって所でしょうか。
近況
設計フェーズの山場(レビューやテクニカル検証会議等)を迎え地獄の日々がこれから暫く続きそうです。まーそれを過ぎれば悠々自適のプログラマーになれそうですが(笑

0