« スレへの返答を書いておく | メイン | 吉里吉里の何がいいのか? »

2014年02月09日

吉里吉里Z 開発:: 型指定対応 TJS2

    

dev_typed_tjs2 ブランチをマージした。
次のバージョンから TJS2 型指定可能版 で書いたような形で型を指定した TJS2 スクリプトが記述可能になる。
型を指定できるだけで、それ以外の効果はない最小対応。
記述できるけど、効果はないという点で const と同じようなもの。

型を指定できるメリットは、大きく分けると開発効率と実行効率の向上。
開発効率は、実行前にある程度問題を排除できること、エディタの支援機能が利用できることなど。
実行効率は、毎回型を見て演算する必要がなくなるので少し速くなる。
型が欲しいと言うのは、開発効率向上がメイン。

前も書いたけど対応工程を考えると以下の3つ。
1. 型指定文法を受け入れる。
2. コンパイル時にエラーが出る。
3. 型を使用したバイトコードを生成し実行する。
( + JITでネイティブに型を使用して演算できる )

今回対応したのは 1 だけ。
今までコメントで型を書いていた場合は、スクリプトにそのまま記述できるようになったので、見た目が良くなるのと将来的にコンパイル時に不具合が弾かれるようになる。
また、エディタで型情報を拾ってインテリセンスが働く場合、入力が楽になる。
( 直接確認はしてないが KKEF でクラス型を指定するとメンバがインテリセンスで入力できるようになるという情報あり )
メリットはこれくらいだけど、将来的にコンパイル時に弾けることを期待して書いておいてもいいかも。

2、3 については変更が大きく、テストが大変なのと少し心配が残るので、やるのなら一気にやってしまいたいところ。
コンパイル時のチェックだけであれば、本体でやる必要はなく、lint のようなツールを作成して弾く形の方が懸念は少ない。
ツールがバグっていてもスクリプトの確認が多めに発生する程度で、実行時にまで影響は波及しない。
ツールとして独立して作っておいて、ある程度検証できた段階で本体のコンパイル部分を一気に置き換えることが可能。
コメントからのドキュメント生成など他用途に流用しやすく作れる。
このような理由からコンパイルチェックは別ツールとして作ることを検討している。



投稿者 Takenori : 2014年02月09日 17:41




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