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

开发可支持多种编程语言的代码克隆检测工具

基本信息

项目摘要

コードクローンとは,ソフトウェア開発中にコピーアンドペーストなどにより作成された類似したコード片である.コードクローンは,ソフトウェア保守を困難にする要因の1つであるため,検出し管理する必要がある.1990年代以降,数多くのコードクローン検出ツールが提案されたが,そのほとんどは限られたプログラミング言語のみに対応し,対応言語を増加させることが難しい.プログラミング言語は,頻繁に新規開発や文法の更新が行われるため,対応言語を柔軟に追加可能なコードクローン検出ツールが必要であると考えられる.研究代表者は以前に,対象言語の文法の一部を正規表現として抽出し,対応言語を柔軟に増加できるコードクローン検出ツールを開発した.しかし,正規表現では表現能力が不足しているため,対応できない言語がある.加えて,トークン列の照合に基づきコードクローンを検出するため,ステートメントの追加や削除を行ったコードクローンを検出する能力はない.そこで,多様なプログラミング言語に対応可能であり,ステートメントの追加・削除を許容するコードクローン検出ツールを実装した. 具体的には,パーサジェネレータの1つであるANTLRを使用してソースコード正規化を行い,Token Bagモデルを基にコード片の類似度を計算することによって,検出可能なコードクローンの種類を増加させることを試みた.研究成果を論文にまとめ,国際会議30th IEEE/ACM International Conference on Program Comprehension (ICPC 2022)に投稿し,採録されたため発表を行った.また,大規模ソースコード集合CodeNetを用いた評価実験に取り組んだ.
代码克隆是通过在软件开发过程中复制和粘贴创建的类似代码。代码克隆是使软件维护困难的因素之一,因此需要检测和管理它们。自1990年代以来,已经提出了许多代码克隆检测工具,但其中大多数仅支持有限数量的编程语言,因此很难增加支持语言的数量。编程语言经常开发和语法更新,因此人们认为必须使用允许在受支持的语言中灵活添加的代码克隆检测工具。首席研究人员先前开发了一种代码克隆检测工具,该工具将作为正则表达式提取目标语言的一部分,并灵活地增加了支持语言的数量。但是,有些语言无法使用,因为正则表达式缺乏表达自己的能力。此外,由于基于匹配的令牌序列检测到代码克隆,因此没有能力检测已添加或删除语句的代码克隆。因此,我们实施了一个代码克隆检测工具,该工具可以支持各种编程语言并允许添加和删除语句。具体而言,我们试图通过使用Parser Generator之一ANTLR标准化源代码来增加可检测的代码克隆的类型,并根据令牌袋模型计算代码件的相似性。研究结果已汇编为论文,并提交给第30届IEEE/ACM国际计划理解会议(ICPC 2022),并收集并介绍了这本书。我们还使用大规模源代码集Codenet进行了评估实验。

项目成果

期刊论文数量(9)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
深層学習を用いたコードクローン検出器の汎化性能に関する調査
使用深度学习研究代码克隆检测器的泛化性能
  • DOI:
  • 发表时间:
    2021
  • 期刊:
  • 影响因子:
    0
  • 作者:
    福家 範浩;藤原 裕士;吉田 則裕;崔 恩瀞;井上 克郎
  • 通讯作者:
    井上 克郎
コードクローン検出に基づくIoTを対象とした自動パッチ生成
基于代码克隆检测的物联网自动补丁生成
  • DOI:
  • 发表时间:
    2022
  • 期刊:
  • 影响因子:
    0
  • 作者:
    大野 堅太郎;吉田 則裕;朱 文青;高田 広章
  • 通讯作者:
    高田 広章
深層学習を用いたコードクローン検出器のベンチマーク間精度調査
使用深度学习的代码克隆检测器的基准准确性调查
  • DOI:
  • 发表时间:
    2022
  • 期刊:
  • 影响因子:
    0
  • 作者:
    福家 範浩;藤原 裕士;吉田 則裕;崔 恩瀞;井上 克郎
  • 通讯作者:
    井上 克郎
A Survey of Approaches for Code Clone Search
代码克隆搜索方法综述
  • DOI:
    10.11309/jssst.39.3_47
  • 发表时间:
    2022
  • 期刊:
  • 影响因子:
    0
  • 作者:
    崔 恩瀞;藤原 裕士;吉田 則裕;水野 修
  • 通讯作者:
    水野 修
A Dynamic Improvement of a Training Dataset for Source Code Classification Using Deep Learning
使用深度学习动态改进源代码分类训练数据集
{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ monograph.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ sciAawards.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ conferencePapers.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ patent.updateTime }}

吉田 則裕其他文献

Fuzz4B: A Support Tool for Fuzzing with AFL
Fuzz4B:使用 AFL 进行模糊测试的支持工具
  • DOI:
    10.11309/jssst.39.2_124
  • 发表时间:
    2022
  • 期刊:
  • 影响因子:
    0
  • 作者:
    宮木 龍;吉田 則裕;藤原 賢二;都築 夏樹;山本 椋太;高田 広章
  • 通讯作者:
    高田 広章
Matching Automaton for String Pattern with Greedy Semantics
具有贪婪语义的字符串模式匹配自动机
  • DOI:
  • 发表时间:
    2011
  • 期刊:
  • 影响因子:
    0
  • 作者:
    平山 力地;吉田 則裕;飯田 元;Taro Suzuki
  • 通讯作者:
    Taro Suzuki
コードクローンに対するリファクタリング可能性に基づいた削減可能ソースコード量の調査
研究基于代码克隆的可重构性可以减少的源代码量
  • DOI:
  • 发表时间:
    2017
  • 期刊:
  • 影响因子:
    0
  • 作者:
    石津 卓也;吉田 則裕;崔 恩瀞;井上 克郎
  • 通讯作者:
    井上 克郎
皮膚電気刺激と力覚の融合による硬軟感の高品位化の検討
皮肤电刺激与力觉相结合提高软硬度感觉质量的研究
  • DOI:
  • 发表时间:
    2021
  • 期刊:
  • 影响因子:
    0
  • 作者:
    藤原 裕士;崔 恩瀞;吉田 則裕;井上 克郎;青谷 和真,安藤 慎太郎,井上 雄介,齋藤 大輔,峯松 信明;須賀悠偉,竹内将大,田中叡,梶本裕之
  • 通讯作者:
    須賀悠偉,竹内将大,田中叡,梶本裕之
変更履歴解析に基づくリファクタリング検出技術の調査
基于变更历史分析的重构检测技术研究

吉田 則裕的其他文献

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

{{ truncateString('吉田 則裕', 18)}}的其他基金

ファジングが発見した不具合の自動修正技術
Fuzzing发现的缺陷自动修正技术
  • 批准号:
    24K02923
  • 财政年份:
    2024
  • 资助金额:
    $ 2.41万
  • 项目类别:
    Grant-in-Aid for Scientific Research (B)
デバッグ支援を目的とした類似コードの検出・分類手法
用于调试支持的相似代码检测和分类方法
  • 批准号:
    08J01964
  • 财政年份:
    2008
  • 资助金额:
    $ 2.41万
  • 项目类别:
    Grant-in-Aid for JSPS Fellows

相似海外基金

「なめらかな編集」のためのプログラミング言語仕様の拡大と縮小
“平滑编辑”的编程语言规范的扩展和收缩
  • 批准号:
    22K11981
  • 财政年份:
    2022
  • 资助金额:
    $ 2.41万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
Construction of mathematical optimization methods for discrete data useful in machine learning algorithms.
构建可用于机器学习算法的离散数据的数学优化方法。
  • 批准号:
    17K19973
  • 财政年份:
    2017
  • 资助金额:
    $ 2.41万
  • 项目类别:
    Grant-in-Aid for Challenging Research (Exploratory)
A systematic approach to implementing context-sensitive code completion
实现上下文相关代码完成的系统方法
  • 批准号:
    16K00106
  • 财政年份:
    2016
  • 资助金额:
    $ 2.41万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
Realtime type error debugging
实时类型错误调试
  • 批准号:
    16K16040
  • 财政年份:
    2016
  • 资助金额:
    $ 2.41万
  • 项目类别:
    Grant-in-Aid for Young Scientists (B)
Investigation of English in Academic Papers by Japanese Researchers Based on Syntactic Changes
基于句法变化的日本学者学术论文英语研究
  • 批准号:
    26284084
  • 财政年份:
    2014
  • 资助金额:
    $ 2.41万
  • 项目类别:
    Grant-in-Aid for Scientific Research (B)
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了