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

2021 Fiscal Year Research-status Report

多様なプログラミング言語に対応可能なコードクローン検出ツールの開発

Research Project

Project/Area Number 20K11745
Research InstitutionNagoya University

Principal Investigator

吉田 則裕  名古屋大学, 情報学研究科, 准教授 (00582545)

Project Period (FY) 2020-04-01 – 2023-03-31
Keywordsコードクローン / 構文解析 / プログラミング言語
Outline of Annual Research Achievements

コードクローンとは,ソフトウェア開発中にコピーアンドペーストなどにより作成された類似したコード片である.コードクローンは,ソフトウェア保守を困難にする要因の1つであるため,検出し管理する必要がある.1990年代以降,数多くのコードクローン検出ツールが提案されたが,そのほとんどは限られたプログラミング言語のみに対応し,対応言語を増加させることが難しい.プログラミング言語は,頻繁に新規開発や文法の更新が行われるため,対応言語を柔軟に追加可能なコードクローン検出ツールが必要であると考えられる.研究代表者は以前に,対象言語の文法の一部を正規表現として抽出し,対応言語を柔軟に増加できるコードクローン検出ツールを開発した.しかし,正規表現では表現能力が不足しているため,対応できない言語がある.加えて,トークン列の照合に基づきコードクローンを検出するため,ステートメントの追加や削除を行ったコードクローンを検出する能力はない.
そこで,多様なプログラミング言語に対応可能であり,ステートメントの追加・削除を許容するコードクローン検出ツールを実装した. 具体的には,パーサジェネレータの1つであるANTLRを使用してソースコード正規化を行い,Token Bagモデルを基にコード片の類似度を計算することによって,検出可能なコードクローンの種類を増加させることを試みた.本ツールは,まず構文定義記述から構文解析器を生成する機能で,ソースコード正規化器を自動的に生成する.その次に,生成された正規化器を用いて,ソートコードに構文解析を行い,Token Bagを抽出する.その後,コード片間の類似度を計算する.実験的評価として,主要プログラミング言語への適用可能性や検出精度に関する実験を行い,両者とも良好な結果を得た.

Current Status of Research Progress
Current Status of Research Progress

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

Reason

実験的評価にまだ不十分な点があるものの,同分野の共同研究者から助言や指導学生の協力により,おおむね順調に進展している.

Strategy for Future Research Activity

2022年度5月に国際会議発表を予定している.国際会議発表で得られるであろう専門家の意見をもとに,提案手法や評価実験について再検討を行う予定である.

Causes of Carryover

新型コロナウィルスの感染拡大による影響で,国内外の学会が中止またはオンライン化され,旅費の大部分が不要となったためである.次年度は積極的に国際会議への参加や発表を行う予定である.

  • Research Products

    (4 results)

All 2022 2021

All Journal Article (3 results) (of which Peer Reviewed: 3 results,  Open Access: 1 results) Presentation (1 results)

  • [Journal Article] Cross-Polytope LSH を用いた コードクローン検出のためのパラメータ決定手法2021

    • Author(s)
      徳井 翔梧、吉田 則裕、崔 恩瀞、井上 克郎
    • Journal Title

      コンピュータ ソフトウェア

      Volume: 38 Pages: 4_60~4_82

    • DOI

      10.11309/jssst.38.4_60

    • Peer Reviewed / Open Access
  • [Journal Article] 深層学習を用いたソースコード分類手法の比較調査2021

    • Author(s)
      藤原 裕士、崔 恩瀞、吉田 則裕、井上 克郎
    • Journal Title

      電子情報通信学会論文誌D 情報・システム

      Volume: J104-D Pages: 622~635

    • DOI

      10.14923/transinfj.2020JDP7068

    • Peer Reviewed
  • [Journal Article] 深層学習を用いたソースコード分類のための動的な学習用データセット改善手法の提案2021

    • Author(s)
      藤原 裕士、崔 恩瀞、吉田 則裕、井上 克郎
    • Journal Title

      電子情報通信学会論文誌D 情報・システム

      Volume: J104-D Pages: 275~284

    • DOI

      10.14923/transinfj.2020PDP0005

    • Peer Reviewed
  • [Presentation] 深層学習を用いたコードクローン検出器のベンチマーク間精度調査2022

    • Author(s)
      福家 範浩, 藤原 裕士, 吉田 則裕, 崔 恩瀞, 井上 克郎
    • Organizer
      "情報処理学会第210回 ソフトウェア工学研究発表会"

URL: 

Published: 2022-12-28  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi