論文の概要: CC2Vec: Combining Typed Tokens with Contrastive Learning for Effective Code Clone Detection
- arxiv url: http://arxiv.org/abs/2405.00428v1
- Date: Wed, 1 May 2024 10:18:31 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-02 15:57:39.055070
- Title: CC2Vec: Combining Typed Tokens with Contrastive Learning for Effective Code Clone Detection
- Title(参考訳): CC2Vec:コードクローン検出のための型付きトークンとコントラスト学習の組み合わせ
- Authors: Shihan Dou, Yueming Wu, Haoxiang Jia, Yuhao Zhou, Yan Liu, Yang Liu,
- Abstract要約: CC2Vecは、単純なコードクローンを素早く識別するために設計された新しいコード符号化手法である。
広く使われている2つのデータセット(BigCloneBenchとGoogle Code Jam)上でCC2Vecを評価する。
- 参考スコア(独自算出の注目度): 20.729032739935132
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: With the development of the open source community, the code is often copied, spread, and evolved in multiple software systems, which brings uncertainty and risk to the software system (e.g., bug propagation and copyright infringement). Therefore, it is important to conduct code clone detection to discover similar code pairs. Many approaches have been proposed to detect code clones where token-based tools can scale to big code. However, due to the lack of program details, they cannot handle more complicated code clones, i.e., semantic code clones. In this paper, we introduce CC2Vec, a novel code encoding method designed to swiftly identify simple code clones while also enhancing the capability for semantic code clone detection. To retain the program details between tokens, CC2Vec divides them into different categories (i.e., typed tokens) according to the syntactic types and then applies two self-attention mechanism layers to encode them. To resist changes in the code structure of semantic code clones, CC2Vec performs contrastive learning to reduce the differences introduced by different code implementations. We evaluate CC2Vec on two widely used datasets (i.e., BigCloneBench and Google Code Jam) and the results report that our method can effectively detect simple code clones. In addition, CC2Vec not only attains comparable performance to widely used semantic code clone detection systems such as ASTNN, SCDetector, and FCCA by simply fine-tuning, but also significantly surpasses these methods in both detection efficiency.
- Abstract(参考訳): オープンソースコミュニティの発展に伴い、コードがコピーされ、拡散され、複数のソフトウェアシステムで進化することが多く、ソフトウェアシステムに不確実性とリスクをもたらす(バグの伝播や著作権侵害など)。
したがって、類似のコードペアを発見するためには、コードクローン検出を実行することが重要である。
トークンベースのツールが大きなコードにスケール可能なコードクローンを検出するために、多くのアプローチが提案されている。
しかし、プログラムの詳細が不足しているため、より複雑なコードクローン、すなわちセマンティックコードクローンを扱うことはできない。
本稿では,単純なコードクローンを迅速に識別すると同時に,セマンティックコードクローン検出機能を強化した新しいコード符号化手法であるCC2Vecを紹介する。
プログラムの詳細をトークン間で保持するために、CC2Vecはそれらを構文タイプに応じて異なるカテゴリ(例えば型付きトークン)に分割し、2つの自己保持機構レイヤを適用してエンコードする。
セマンティックコードクローンのコード構造の変化に抵抗するため、CC2Vecは異なるコード実装で導入された違いを減らすために対照的な学習を行う。
我々は,広く使用されている2つのデータセット(BigCloneBenchとGoogle Code Jam)上でCC2Vecを評価し,本手法が単純なコードクローンを効果的に検出できることを報告した。
さらに、CC2Vecは、ASTNN、SCDetector、FCCAといった広く使われているセマンティックコードクローン検出システムに匹敵する性能を得るだけでなく、検出効率においてこれらの手法をはるかに上回っている。
関連論文リスト
- Rethinking Code Refinement: Learning to Judge Code Efficiency [60.04718679054704]
大規模言語モデル(LLM)は、コードを理解して生成する素晴らしい能力を示しています。
本稿では,2つの異なる符号間の効率を判定するために訓練されたコード言語モデルに基づく新しい手法を提案する。
提案手法は,複数の改良ステップで複数のプログラミング言語に対して検証し,より効率的で少ないバージョンのコードの識別を効果的に行うことができることを示した。
論文 参考訳(メタデータ) (2024-10-29T06:17:37Z) - Uncovering LLM-Generated Code: A Zero-Shot Synthetic Code Detector via Code Rewriting [78.48355455324688]
そこで本研究では,コードと書き直された変種との類似性に基づいて,ゼロショット合成符号検出器を提案する。
以上の結果から,既存のテキスト用合成コンテンツ検出装置よりも顕著な向上が見られた。
論文 参考訳(メタデータ) (2024-05-25T08:57:28Z) - SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - AdaCCD: Adaptive Semantic Contrasts Discovery Based Cross Lingual
Adaptation for Code Clone Detection [69.79627042058048]
AdaCCDは、その言語でアノテーションを使わずに、新しい言語のクローンコードを検出する新しい言語間適応手法である。
5つのプログラミング言語からなる多言語コードクローン検出ベンチマークを構築し,AdaCCDの言語間適応性を評価する。
論文 参考訳(メタデータ) (2023-11-13T12:20:48Z) - Towards Understanding the Capability of Large Language Models on Code
Clone Detection: A Survey [40.99060616674878]
大規模言語モデル(LLM)は、様々なコード関連の知識を持ち、様々なソフトウェア工学の課題に対して汎用的である。
本稿では,クローン検出のためのLLMを包括的に評価し,異なるクローンタイプ,言語,プロンプトを網羅する。
従来の手法を超越した複雑な意味的クローンの検出において,高度なLCMが優れていることがわかった。
論文 参考訳(メタデータ) (2023-08-02T14:56:01Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - Generalizability of Code Clone Detection on CodeBERT [0.0]
CodeBERTのようなトランスフォーマーネットワークは、ベンチマークデータセットのコードクローン検出において、すでに優れた結果が得られている。
我々は、BigCloneBenchからJavaコードクローンの2つの異なるサブセットを評価することで、CodeBERTの一般化性が低下することを示す。
論文 参考訳(メタデータ) (2022-08-26T11:24:20Z) - Revisiting Code Search in a Two-Stage Paradigm [67.02322603435628]
TOSSは2段階のフュージョンコード検索フレームワークである。
まずIRベースのバイエンコーダモデルを使用して、少数のトップkコード候補を効率的にリコールする。
その後、より微細なクロスエンコーダを使用してランク付けを行う。
論文 参考訳(メタデータ) (2022-08-24T02:34:27Z) - Evaluation of Contrastive Learning with Various Code Representations for
Code Clone Detection [3.699097874146491]
コードスニペットの意味的クローンを検出するためのコントラスト学習の評価を行った。
CodeTransformatorを使って、競争力のあるプログラミングソリューションに基づいて、プラジャライズされたコードを模倣するデータセットを作成します。
評価の結果,提案手法は各タスクにおいて多種多様な性能を示すが,グラフベースモデルの性能は概して他のモデルよりも優れていることがわかった。
論文 参考訳(メタデータ) (2022-06-17T12:25:44Z) - Detecting Code Clones with Graph Neural Networkand Flow-Augmented
Abstract Syntax Tree [30.484662671342935]
フロー拡張抽象構文木(FA-AST)と呼ばれるプログラムのグラフ表現を構築する。
FA-ASTに2種類のグラフニューラルネットワークを適用し、コードペアの類似性を計測する。
当社のアプローチは,Google Code JamとBigCloneBenchタスクの両面で,最先端のアプローチよりも優れています。
論文 参考訳(メタデータ) (2020-02-20T10:18:37Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。