研究課題/領域番号 |
23K11053
|
研究種目 |
基盤研究(C)
|
配分区分 | 基金 |
応募区分 | 一般 |
審査区分 |
小区分60050:ソフトウェア関連
|
研究機関 | 芝浦工業大学 |
研究代表者 |
篠埜 功 芝浦工業大学, 工学部, 教授 (10362021)
|
研究期間 (年度) |
2023-04-01 – 2026-03-31
|
研究課題ステータス |
交付 (2023年度)
|
配分額 *注記 |
4,030千円 (直接経費: 3,100千円、間接経費: 930千円)
2025年度: 1,040千円 (直接経費: 800千円、間接経費: 240千円)
2024年度: 1,040千円 (直接経費: 800千円、間接経費: 240千円)
2023年度: 1,950千円 (直接経費: 1,500千円、間接経費: 450千円)
|
キーワード | 構文補完 / LR構文解析 / 構文解析器生成系 / 文法 / 生成規則 / プログラミングツール / 順序 / コード補完 / コード例 / 文形式 / 構文定義 |
研究開始時の研究の概要 |
エディタ上での自動インデント、識別子や構文などの入力補完や、関数等のドキュメントの表示、種々のリファクタリングなどのプログラミングツールが広く利用されており、これらのツールはプログラミングの効率に大きな影響を及ぼす。これらのツールの改善は大きな課題であり、本研究では、さまざまな支援機能の中で特に構文補完に着目し、対象言語の構文定義およびGitHub等で公開されている既存のコード例の情報を解析して用いることにより、構文や型等の文脈に応じた実用的な補完候補を計算する方式の考案および実装を行う。
|
研究実績の概要 |
2023年度は、基盤研究(C) 20K11752 「構文解析を用いたテキストベースコード補完」の助成を受けて全南大学校のKwanghoon Choi教授とともに2022年度に投稿した論文がScience of Computer Programmingという国際論文誌に採録され、2023年6月に掲載された(Volume 228)。これは国際会議ACM Partial Evaluation and Program Manipulation(PEPM 2021)で発表を行ったLR構文解析に基づく構文補完方式をもとに、Haskell、C、Small Basic、PolyRPC等の言語に適用し、simple candidate, nested candidate, extended simple candidate等、いくつかの補完候補についてそれらを計算するアルゴリズムを考案したものである。この補完方式をもとに、既存のソースコードを事前に処理し、構文解析器の各内部状態におけるactionの頻度情報を計算しておいて、それを補完時に用いる構文補完方式を考案して国際会議The 39th ACM SIGAPP Symposium on Applied Computing (SAC 2024)に投稿し、採録された。従来、エディタ上でのソースコードの編集時に用いられる補完では、識別子の補完においては候補提示順序が考慮される方式が少ないながらもあったが、構文の補完においては候補提示順序が考慮されていなかった。本研究で提案した方式は、この問題を解決するものである。この方式を実装し、合計789,023行の3,701個のSmallBasicのプログラムと合計308,599行の412個のC11のプログラムを対象に実験したところ、順位の高い補完候補は既存のソースコードと合致する場合が多く、かつ、既存のソースコード内における構文は補完候補の上位10番以内に96%以上入っていた。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
研究は順調に行われている。提示順序を考慮した補完方式を考案、実装し、良い実験結果も得られた。研究成果は国際会議SAC 2024に採録された。
|
今後の研究の推進方策 |
現状では、補完候補は終端、非終端記号の列であり、終端記号の属性値がない状態である。これだと実際に補完を行う際に、例えば識別子はIDと表示されるだけで、ここからさらに識別子の候補を得るためには1 step余分にプログラマの手間がかかるので、プログラマにとって便利ではない状況である。今後は、2023年度の成果をもとに、近年広く使われ始めているGPT等の大規模言語モデルに対して本研究の方式で提示される補完候補をpromptとして与えることにより、識別子等のlexemeを得ることを検討している。
|