クライアントサイドの研究として,"言語変換系を用いたソフトウェア開発におけるソースレベルデバッグ支援"に関する研究を行った.プログラミング言語の処理系の形態には,インタプリタやコンパイラの他に,他の高級言語へと変換する言語変換系があるが,Webアプリケーションにおけるクライアントサイドのプログラミング言語の主力がJavaScriptであるため,JavaScriptの代替を目的としてJavaScriptへ変換する言語変換系が多く開発されている.Webアプリケーションの開発において,開発者はソースプログラムの意味論に基づいてプログラムの振る舞いを理解しているにもかかわらず,デバッグはブラウザ上のJavaScriptで作業せざるを得ない.このように直接のデバッグは困難である点が言語変換系共通の問題である.本研究では,遅延評価関数型言語Haskellをソースプログラムとし,JavaScriptをターゲットする言語変換系Fayを対象として,JavaScriptの実行時情報からHaskellプログラムの実行時情報を擬似的に生成する手法を提案し,その手法に基づくソースレベルのデバッグ支援環境を実現した.支援環境はFirefox上のJavaScriptデバッガであるFirebugのプラグインとして実装した. サーバーサイドの研究として,"大規模ソフトウェアの概要把握支援のための動的解析結果の静的解析を用いた一元化"に関する研究を行った.大規模なソフトウェアを理解する初期段階において,構成要素を役割に基づいて分類することは有用である.レコード型に関する利用頻度は,プログラムの実行段階により変動するため,この変動を分析することで,プログラムにおけるレコード型の役割を推測し,レコード型をグルーピングする手法を提案した.2つのソフトウェアによる適用実験から提案手法の検証を行った.
|