適用実験ができるよう、PHPの構文解析機能が現実のアプリケーションに対応できるよう精度向上のための拡張を中心に取り組んだ。具体的には、実際のアプリケーションフレームワークの解析が行える程度の精度を得るために、PHPの最新の仕様変更の調査を行い、それに合わせた解析機能の修正やテストケースの追加、また、回帰テスト環境の準備を行なった。より現実的なソースコードを対象としたことや、PHPの最新の構文に対応したことで、多くの問題が見つかった。特に、同じ予約語が異なる構文の中で使用するものがあり、コード片を部分的に構文解析するときに区別が難しいという問題があった。その解決に多くの時間を要したので、当初期待したほどには進展できなかった。また、部分評価のフレームワークのために構文木の仕様を整理し、評価器の基盤作りにも取り組んだ。構文解析の結果を、本研究以外に活用できるよう、構文木を汎用的なJSON形式で表現できるようにしつつも、構文木に被せるラッパーを用意することで、木のトラバースを容易に行えるようにした。これまでの開発技術の一部は、先行して開発をしていたC言語の解析環境にも取り入れており、C言語プログラミングの教育支援の研究に応用された。昨年度、取り組み始めたアスペクトを意識した横断的解析についても精度の向上を行ない、再実験等を進めた。しかし、正確に区別ができないものもあり、精度向上には限界があることも確認した。
|