研究課題/領域番号 |
20K11752
|
研究種目 |
基盤研究(C)
|
配分区分 | 基金 |
応募区分 | 一般 |
審査区分 |
小区分60050:ソフトウェア関連
|
研究機関 | 芝浦工業大学 |
研究代表者 |
篠埜 功 芝浦工業大学, 工学部, 教授 (10362021)
|
研究期間 (年度) |
2020-04-01 – 2024-03-31
|
研究課題ステータス |
完了 (2023年度)
|
配分額 *注記 |
3,250千円 (直接経費: 2,500千円、間接経費: 750千円)
2022年度: 910千円 (直接経費: 700千円、間接経費: 210千円)
2021年度: 910千円 (直接経費: 700千円、間接経費: 210千円)
2020年度: 1,430千円 (直接経費: 1,100千円、間接経費: 330千円)
|
キーワード | コード補完 / 構文補完 / LR構文解析 / 文形式 / 簡約 / 統合開発環境 / 構文解析器生成系 / 文法 / 生成規則 / プログラミングツール / LR解析 / 構文解析 / 構造エディタ / 属性文法 |
研究開始時の研究の概要 |
本研究では、テキストベース(プログラマが自由にコードを編集するのを妨げない)でかつ形式的に仕様が定められたコード補完機能、特に構文補完機能を構文解析器と連携しながら実現する方式の考案および実装を行う。理論面では、構文解析器の内部状態を用いたコード補完方式を開発する。実装面では、理論面の研究に基づき、コード補完機能を構文解析器と連携しながら系統的に行う技法を考案し、Emacs等のエディタの編集操作に応じて動作するコード補完機能を提供する。
|
研究成果の概要 |
本研究課題では、テキストエディタを用いたプログラミング時のコード補完を行う新たな方式を提案し、実装した。この方式はLR構文解析器の内部状態を用いるものであり、プログラムの先頭からカーソル位置までのコードを構文解析し、その時点の構文解析器のスタック上の記号および状態の列をもとにカーソル位置以降に入りうる構文の候補を計算してプログラマに提示するものである。実装はEmacsに対して行い、補完候補計算はHaskell、インターフェースはEmacs Lispで実装し、Haskell、C等の言語で実際に使えることを確認した。また、実装したコード補完システムのソースコードをweb page上で公開した。
|
研究成果の学術的意義や社会的意義 |
Visual Studio等の開発環境において構文補完機能が使われ始めているが、通常、仕様が明示されていない。本研究課題は、構文解析を用いて、カーソル位置までに構文エラーがない場合に、カーソル位置以降の構文の候補を提示する方式を考案したものである。学術的には1980年代にSynthesizer GeneratorやMENTOR等、構造エディタの研究が行われ、近年では、構造エディタでの編集の正しさを論じた研究もある。しかし構造エディタはプログラマが自由にプログラムテキストを編集するのを妨げる。本研究は、自由なプログラム編集を妨げることなく構文補完を行うための方式を提案したものである。
|