講演名 2018-01-25
定理証明技術を用いたソースコードの補完手法の提案
小池 遼平(早大), 小野 康一(日本IBM), 深澤 良彰(早大),
PDFダウンロードページ PDFダウンロードページへ
抄録(和) ソフトウェア開発を効率的に行うための技術の1つにコード補完がある.コード補完とは記述中のソースコードの不足部分を自動的に補完する技術であり,ユーザは提示された補完候補のうちの1つを選択することで効率よくコーディングを行うことができる.しかし既存の手法では,正しくないコードの候補も含めて提示されるため,ユーザが誤ったコードを選択する可能性が発生する.この場合,ユーザはコード全体に修正を加えるか,補完された部分を再び候補の中から選択し直すという手間を強いられることになる.そこで本研究では定理証明技術を組み込んだコード補完手法を提案する.提案する手法では実装途中のソースコードに加え,実装途中のコードに与えられた事前条件/事後条件を考慮したコード検索を行い,定理証明を用いた検証により候補の絞り込みを行う.これにより,与えられた仕様を充足するコードに限定して推薦を行うことができるため,スムーズなコーディングを行えるとともに誤ったコードを選択するリスクを軽減することができる.
抄録(英) Code completion is one of the techniques for making software development efficient. Code completion can complete the missing part of the source code automatically, so users can implement by selecting one of the recommended candidates. However, when users work on environment with existing code completion techniques, they might select incorrect candidates, since the recommendation would include incorrect codes. In this case, they have to modify the code or to select another one from the candidates. In this paper, we propose a new code completion method incorporating theorem proving technique. In this method, code search is performed in consideration of pre-condition / post-condition given as the specification of the code, and the theorem proving is used to narrow down the candidates by verifying the specification. By using this method, users can get the correct code that satisfies a given specification, so users can develop software smoothly and reduce the risk of selecting incorrect codes.
キーワード(和) コード補完 / コード断片 / JMLアノテーション / 定理証明
キーワード(英) code completion / code snippet / JML annotation / automated theorem proving
資料番号 KBSE2017-33
発行日 2018-01-18 (KBSE)

研究会情報
研究会 KBSE
開催期間 2018/1/25(から2日開催)
開催地(和) 機械振興会館
開催地(英) Kikai-Shinko-Kaikan Bldg.
テーマ(和) 一般
テーマ(英)
委員長氏名(和) 金田 重郎(同志社大)
委員長氏名(英) Shigeo Kaneda(Doshisha Univ.)
副委員長氏名(和) 粂野 文洋(日本工大)
副委員長氏名(英) Fumihiro Kumeno(Nippon Inst. of Tech.)
幹事氏名(和) 岩田 一(神奈川工科大) / 櫻井 孝平(金沢大)
幹事氏名(英) Hajime Iwata(Kanagawa Inst. of Tech.) / Kohei Sakurai(Kanazawa Univ.)
幹事補佐氏名(和) 猿渡 卓也(NTT) / 木村 功作(富士通研)
幹事補佐氏名(英) Takuya Saruwatari(NTT) / Kosaku Kimura(Fujitsu labs.)

講演論文情報詳細
申込み研究会 Technical Committee on Knowledge-Based Software Engineering
本文の言語 JPN
タイトル(和) 定理証明技術を用いたソースコードの補完手法の提案
サブタイトル(和)
タイトル(英) A Code Completion Method Using Automated Theorem Proving
サブタイトル(和)
キーワード(1)(和/英) コード補完 / code completion
キーワード(2)(和/英) コード断片 / code snippet
キーワード(3)(和/英) JMLアノテーション / JML annotation
キーワード(4)(和/英) 定理証明 / automated theorem proving
第 1 著者 氏名(和/英) 小池 遼平 / Ryohei Koike
第 1 著者 所属(和/英) 早稲田大学(略称:早大)
Waseda University(略称:Waseda Univ.)
第 2 著者 氏名(和/英) 小野 康一 / Kouichi Ono
第 2 著者 所属(和/英) 日本アイ・ビー・エム(略称:日本IBM)
IBM Japan(略称:IBM Japan)
第 3 著者 氏名(和/英) 深澤 良彰 / Yoshiaki Fukazawa
第 3 著者 所属(和/英) 早稲田大学(略称:早大)
Waseda University(略称:Waseda Univ.)
発表年月日 2018-01-25
資料番号 KBSE2017-33
巻番号(vol) vol.117
号番号(no) KBSE-414
ページ範囲 pp.7-11(KBSE),
ページ数 5
発行日 2018-01-18 (KBSE)