« 吉里吉里Z 関東打ち上げに行ってきた | メイン | TJS2 型指定可能版 »

2014年02月02日

吉里吉里Z 開発:: TJS2 型指定可能について考えてみる

    

1. 単純に構文として受け入れるだけ。
bisonスクリプト10行くらい書き換えれば対応できるかな。

2. コンパイル時にエラーが出る。
そこそこ修正範囲広くなるけど、1日もかからない対応。テストはもう少しかかる。

3. VMでの型情報対応。
これは工数かかる。


1 は、ほとんど意味がないけど、スクリプトの見た目上対応しているように見える。
気分的にうれしいくらいで、他に意味はない。
2 は、エラーを減らせるのでうれしいが、コンパイルが実行時に行われる関係で実行してみないとわからないのが難点。
バイトコードへのコンパイルをチェックのために走らせるよう習慣づければ、事前にわかるのでうれしい。
エディタで対応し、コーディング中にコンパイルエラーが出ればかなり効率的。
3 は、大変だけど実行時の効率にも影響してくるので、かなりありがたい。
JIT まで出来れぱ、型情報があると演算のみならネイティブ並の速度。
ただ、プロパティアクセスや関数呼び出しは、動的言語なのでかなり重い処理となってしまうのは変わらず。

関数の引数や戻り値、プロパティの値などは、型を指定したとしても、内部的にはバリアント型となるかな。
内部的に型があっても、どのオブジェクトの関数やプロパティかは実行時までわからないので、実行時例外となってしまう。
呼び出し前に型チェックして、関数内ではその型とみなして処理すると効率は上がる。
引数を関数内で利用している箇所の型を明示できるし、返り値についても同様なので、そこのメリットもある。
プロパティもその内部で処理している範囲なら意味がある。
関数よりは遥かに意味が薄いけど。

追記:
var hoge:Layer; とか指定できれば、 エディタでインテリセンスが使えるとレスをもらった。
それは確かにいいな。
基本ActionScript合わせにするつもりだけど、仕様の検討と調査してみよう。



投稿者 Takenori : 2014年02月02日 17:16




comments powered by Disqus
Total : Today : Yesterday : なかのひと