• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2016 Fiscal Year Research-status Report

文脈を考慮したコード補完の実装の系統的導出に関する研究

Research Project

Project/Area Number 16K00106
Research InstitutionShibaura Institute of Technology

Principal Investigator

篠埜 功  芝浦工業大学, 工学部, 准教授 (10362021)

Project Period (FY) 2016-04-01 – 2019-03-31
Keywords開発環境 / キーワード補完 / 構文解析 / 誤り回復 / コードクローン
Outline of Annual Research Achievements

平成28年度は、コード補完の単純な場合として、構文に関する文脈を考慮したキーワードの補完をyaccの誤り回復機能に基づいて行うことを試みた。入力中の構文が不完全なソースコードに対応するため、YaccによるLR構文解析の誤り回復機能を用いることとし、キーワード補完機能の実装を仕様から系統的に導出する手法を考案し実装した。この成果は情報処理学会第109回プログラミング研究発表会において発表した。本手法においては、カーソル位置の(入力途中の)キーワードの字句を識別するため、入力途中であることを示す字句を字句解析および構文解析の仕様記述に追加する。構文解析を行うので、補完候補計算において構文に関する文脈が考慮される。実装の導出はByaccという構文解析器生成系のソースコードを用いて行った。Yaccの構文規則記述およびユーザが指定した補完対象キーワードを入力とし、構文規則記述への字句errorの機械的挿入により補完候補計算プログラムの自動生成を行うツールを作成した。例として、C言語のYaccの仕様記述ファイルを入力とし、C言語のキーワードの補完を行うプログラムを生成した。補完対象キーワードは自動生成ツールの使用者が指定できる。また、コード補完等の様々な機能を持つプログラム開発システムにおけるソースコードのリファクタリング機能に関し、関数型言語Standard MLを対象に関数適用がギャップとなっているクローンを検出する新たな手法を提案し実装した。この成果はACM SIGPLAN 2017 Workshop on Partial Evaluation and Program Manipulation (PEPM 2017) において発表した。

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

平成28年度の計画としては、単純な例として、Standard MLの核となる部分に対し、構文に関する文脈を考慮したキーワード補完方式を開発する予定であったが、例をC言語としてこれを実施した。

Strategy for Future Research Activity

平成28年度に考案したキーワード補完方式は、Yaccの構文記述への字句errorの入れ方が単純であり、生成される補完システムは仕様が明確ではあるが、プログラマが望む補完にならない場合がある。また、Yaccの代わりにANTLRなどの他の構文解析器生成系を用いることも検討する。補完対象をキーワードから識別子や式などに拡張する。

Causes of Carryover

平成28年度の使用額が603,362円となり、600,000円を少し超過したため、平成29年度に合わせて支出することとなったため。

Expenditure Plan for Carryover Budget

額が3,362円であり、当初の計画から変更はほぼない。

  • Research Products

    (2 results)

All 2017 2016

All Presentation (2 results) (of which Int'l Joint Research: 1 results)

  • [Presentation] Detecting code clones with gaps by function applications2017

    • Author(s)
      Tsubasa Matsushita, Isao Sasano
    • Organizer
      ACM SIGPLAN 2017 Workshop on Partial Evaluation and Program Manipulation (PEPM 2017)
    • Place of Presentation
      The Jussieu campus of Universite Pierre et Marie Curie
    • Year and Date
      2017-01-16 – 2017-01-17
    • Int'l Joint Research
  • [Presentation] LR構文解析のエラー回復機能を用いたキーワード補完機能の系統的導出2016

    • Author(s)
      白楊, 篠埜 功
    • Organizer
      情報処理学会 第109回プログラミング研究発表会
    • Place of Presentation
      浜松市福祉交流センター
    • Year and Date
      2016-06-09 – 2016-06-10

URL: 

Published: 2018-01-16  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi