楠本研究室

業績一覧

ホーム業績一覧

抽象構文木を利用したファイル間のコード移動検出

抽象構文木を利用したファイル間のコード移動検出
電子情報通信学会技術研究報告, vol.119, no.362, pp.13-18 (2020)
概要: ソフトウェア開発において,開発者がソースコードの差分を理解することは重要である.ソースコードの差分を検出するツールとしてGumTreeがある.GumTreeは編集前後のソースコードを入力として与えると,内部で抽象構文木を生成し,削除・挿入・移動・更新といった操を抽象構文木のノード単位で検出する.しかし,GumTreeは1つのファイルの差分しか計算できないため,ファイルをまたいだソースコードの移動を検出できないという問題点がある.そこで本研究では,プロジェクトに含まれる全てのソースファイルから1つの抽象構文木を構築し,ファイルをまたいだソースコードの移動を検出する手法を提案する.そしてオープンソースソフトウェアに対して提案手法を用いて実験を行った結果,全てのプロジェクトにおいてファイルをまたいだソースコードの移動を検出でき,最大で2,406,459個のファイルをまたいだ移動を確認できた.また,検出結果を確認したところ,ファイルをまたいだソースコードの移動が発生する際,いくつかの特徴が得られた.
@inproceedings{藤本章良2020,
  author = {藤本 章良 and 肥後 芳樹 and 松本 淳之介 and 楠本 真二},
  title = {抽象構文木を利用したファイル間のコード移動検出},
  booktitle = {電子情報通信学会技術研究報告},
  volume = {119},
  number = {362},
  pages = {13--18},
  year = {2020},
  month = {jan},
  url = {https://www.ieice.org/ken/paper/20200114s1U2/}
}