研究課題/領域番号 |
20K11752
|
研究機関 | 芝浦工業大学 |
研究代表者 |
篠埜 功 芝浦工業大学, 工学部, 教授 (10362021)
|
研究期間 (年度) |
2020-04-01 – 2023-03-31
|
キーワード | 構文補完 / LR解析 / 構文解析器生成系 / 文形式 / 簡約 / 統合開発環境 / プログラミングツール |
研究実績の概要 |
2020年度は、全南大学校のKwanghoon Choi准教授とともにLR解析に基づく構文補完方式を整理し、国際会議PEPM2021に論文を投稿し、採択され、発表を行った。発表した内容は、エディタのカーソル位置までのテキストまでをLR構文解析器で解析し、カーソル位置に達した時点のLR構文解析器のスタックの情報をもとに、カーソル位置以降に入りうる構文の候補を計算するというものである。核となる考えは、カーソル位置まで解析した時点の構文解析器において、何らかの終端あるいは非終端の記号列をshiftした後reduceできる場合、その記号列を補うと1つの構文の単位が完結するだろうという考えである。まず、入力途中の構文の最後の1つの部分について候補を計算する方式を考案した。この計算方式は、有限時間で計算が終了し、かつ実用になる時間で補完候補計算が行われる。各補完候補は終端あるいは非終端記号の列であるが、非終端記号については、...などの適当な記号列に置き換えてユーザに提示する。またこれを組み合わせることにより、入力途中の構文が入れ子になって複数ある場合に対応する計算方式を考案した。これは文法が直接あるいは間接左再帰になっている場合に計算が終わらなくなるが、これに対処するためにヒューリスティックな計算方式を考案した。考案した方式に基づき、Choi氏が2019年に開発した、スタック情報にアクセスできるLR構文解析器生成系を用いて、Emacs上で動作する構文補完システムを実装した。このシステムはHaskellとEmacs Lispの間で通信をする形で実装されている。実装したシステムはgithub上で公開されている。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
構文解析器の内部状態を用いたコード補完方式の考案および実装が本研究課題で取り組む内容であるが、2020年度はその最も基本的な場合についてアルゴリズムの提案および実装を行った。
|
今後の研究の推進方策 |
2020年度は、エディタ上のカーソル位置までのプログラムテキストのみから構文補完を行う方式を考案し、実装した。今後、これを拡張し、カーソル位置以降のプログラムテキストも適切に用いて構文補完を行う方式を考案し、実装する予定である。
|
次年度使用額が生じた理由 |
コロナウィルスの関係で国際会議がzoomで開催され、旅費、宿泊費等が不要になったため、次年度使用額が生じた。これと次年度分の助成金を合わせ、国際会議や研究打ち合わせの旅費、参加費等に用いる。
|