研究課題/領域番号 |
25730047
|
研究機関 | 芝浦工業大学 |
研究代表者 |
篠埜 功 芝浦工業大学, 工学部, 准教授 (10362021)
|
研究期間 (年度) |
2013-04-01 – 2016-03-31
|
キーワード | コード補完 / 変数名補完 / 識別子補完 / 開発環境 / 暗に型付けられた言語 / 関数型言語 / LR構文解析 / エラー回復 |
研究実績の概要 |
2014年度は、関数型言語の核となる、ラムダ計算にlet式等が加わった言語に対し、文脈を考慮した識別子補完を行う方式を提案、実装し、BICT 2014 Special Track on Modularization for Practical Software Engineeringという国際会議において発表した。識別子補完はコード補完の最も基本的な場合の一つである。本提案手法において、補完候補計算時に構文解析を行うが、そのプログラムはyaccを使って自動生成したものを用いているところが一つの特徴である。yaccはエラー回復機能を持っており、errorという特別な字句を構文定義中に記述することにより、ソースコード中に構文エラーがあった場合のエラーからの回復方法を制御することができる。一般にプログラミングにおいては一部が書きかけのまま他の部分を記述したりすることにより、エラーを含んだ状態で補完候補の計算を行う必要がある。現在広く使われている開発環境においてもエラーを含んだ状態で補完候補が表示されるが、内部でどのような計算が行われているかプログラマーに明確に分からない。熟練プログラマにとっては開発環境の機能の挙動が予想できることが望ましく、本研究の提案手法により、LR構文解析およびyaccのエラー回復を知っているプログラマにとって補完機能に関する挙動が明確に分かり、かつエラーの制御をある程度行うことが可能である。上記提案手法はEmacsモードとして実装し、web page上で公開した。補完候補の計算はyaccで自動生成されたC言語プログラムを用いて行い、Emacs lispプログラムとの間で通信を行っている。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
2014年度は補完計算において計算の再利用方式を検討する予定であったが、構文エラーを含む場合へ対応する補完手法の提案および実装を行った。この手法において、構文エラーへの対応がユーザにとって明確であるだけでなく、対象言語の構文解析プログラムがyaccで生成するされることを前提としている。このことにより、仕様が明確な補完機能の実装を対象言語のコンパイラの構文解析のコードを再利用して行うことが可能になった。コンパイラのコードの再利用は2015年度に検討を予定していたことであり、その一部が達成されている。
|
今後の研究の推進方策 |
識別子補完を含む、より一般的なコード補完方式を確立する。また、型エラーを含む場合への対応や計算の再利用方式について検討する。
|
次年度使用額が生じた理由 |
3月頃に開催される国内会議での成果発表、研究調査のための旅費および学会参加費を残していたが、予算の効率的仕様のために次年度予算に繰り越すこととした。
|
次年度使用額の使用計画 |
物品費や、国内会議、国際会議の旅費、参加費等に使用する。
|