論文の概要: Detecting Code Clones with Graph Neural Networkand Flow-Augmented
Abstract Syntax Tree
- arxiv url: http://arxiv.org/abs/2002.08653v1
- Date: Thu, 20 Feb 2020 10:18:37 GMT
- ステータス: 処理完了
- システム内更新日: 2022-12-30 08:00:58.554104
- Title: Detecting Code Clones with Graph Neural Networkand Flow-Augmented
Abstract Syntax Tree
- Title(参考訳): グラフニューラルネットワークとフロー強化抽象構文木を用いたコードクローンの検出
- Authors: Wenhan Wang, Ge Li, Bo Ma, Xin Xia, Zhi Jin
- Abstract要約: フロー拡張抽象構文木(FA-AST)と呼ばれるプログラムのグラフ表現を構築する。
FA-ASTに2種類のグラフニューラルネットワークを適用し、コードペアの類似性を計測する。
当社のアプローチは,Google Code JamとBigCloneBenchタスクの両面で,最先端のアプローチよりも優れています。
- 参考スコア(独自算出の注目度): 30.484662671342935
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Code clones are semantically similar code fragments pairs that are
syntactically similar or different. Detection of code clones can help to reduce
the cost of software maintenance and prevent bugs. Numerous approaches of
detecting code clones have been proposed previously, but most of them focus on
detecting syntactic clones and do not work well on semantic clones with
different syntactic features. To detect semantic clones, researchers have tried
to adopt deep learning for code clone detection to automatically learn latent
semantic features from data. Especially, to leverage grammar information,
several approaches used abstract syntax trees (AST) as input and achieved
significant progress on code clone benchmarks in various programming languages.
However, these AST-based approaches still can not fully leverage the structural
information of code fragments, especially semantic information such as control
flow and data flow. To leverage control and data flow information, in this
paper, we build a graph representation of programs called flow-augmented
abstract syntax tree (FA-AST). We construct FA-AST by augmenting original ASTs
with explicit control and data flow edges. Then we apply two different types of
graph neural networks (GNN) on FA-AST to measure the similarity of code pairs.
As far as we have concerned, we are the first to apply graph neural networks on
the domain of code clone detection.
We apply our FA-AST and graph neural networks on two Java datasets: Google
Code Jam and BigCloneBench. Our approach outperforms the state-of-the-art
approaches on both Google Code Jam and BigCloneBench tasks.
- Abstract(参考訳): コードクローンは意味的に類似したコードフラグメントペアであり、構文的に類似または異なる。
コードクローンの検出は、ソフトウェアのメンテナンスコストの削減とバグの防止に役立つ。
コードクローンを検出するための多くのアプローチが提案されているが、その多くは構文的クローンの検出に焦点を合わせており、異なる構文的特徴を持つ意味的クローンではうまく機能しない。
セマンティッククローンを検出するために、研究者はコードクローン検出にディープラーニングを導入し、データから潜伏するセマンティック機能を自動的に学習した。
特に文法情報を活用するために、いくつかのアプローチでは抽象構文木(AST)を入力として使用し、様々なプログラミング言語のコードクローンベンチマークにおいて大きな進歩を遂げた。
しかし、これらのASTベースのアプローチは、コードフラグメントの構造情報、特に制御フローやデータフローのようなセマンティック情報を完全に活用することはできない。
本稿では,制御とデータフロー情報を活用するため,flow-augmented abstract syntax tree (fa-ast) と呼ばれるプログラムのグラフ表現を構築する。
FA-ASTを明示的な制御とデータフローエッジで拡張することで構築する。
次に、FA-ASTに2種類のグラフニューラルネットワーク(GNN)を適用し、コードペアの類似性を測定する。
私たちが関心を持つ限り、コードクローン検出の領域にグラフニューラルネットワークを適用するのは初めてです。
FA-ASTとグラフニューラルネットワークを2つのJavaデータセット(Google Code JamとBigCloneBench)に適用します。
当社のアプローチは,Google Code JamとBigCloneBenchタスクの両面で,最先端のアプローチよりも優れています。
関連論文リスト
- CC2Vec: Combining Typed Tokens with Contrastive Learning for Effective Code Clone Detection [20.729032739935132]
CC2Vecは、単純なコードクローンを素早く識別するために設計された新しいコード符号化手法である。
広く使われている2つのデータセット(BigCloneBenchとGoogle Code Jam)上でCC2Vecを評価する。
論文 参考訳(メタデータ) (2024-05-01T10:18:31Z) - Source Code Vulnerability Detection: Combining Code Language Models and Code Property Graphs [5.953617559607503]
Vul-LMGNNは、事前訓練されたコード言語モデルとコードプロパティグラフを組み合わせた統一モデルである。
Vul-LMGNNは、様々なコード属性を統一的なグラフ構造に統合するコードプロパティグラフを構築する。
属性間の依存性情報を効果的に保持するために,ゲートコードグラフニューラルネットワークを導入する。
論文 参考訳(メタデータ) (2024-04-23T03:48:18Z) - Source Code is a Graph, Not a Sequence: A Cross-Lingual Perspective on
Code Clone Detection [3.3298891718069648]
グラフベースの手法は,シーケンスベースの手法よりもコードクローン検出に適していることを示す。
CodeGraphは、両方のデータセット、特に言語間コードクローンにおいて、CodeBERTよりも優れています。
論文 参考訳(メタデータ) (2023-12-27T09:30:31Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - ASTRO: An AST-Assisted Approach for Generalizable Neural Clone Detection [12.794933981621941]
ほとんどのニューラルクローン検出方法は、トレーニングデータセットに現れるクローンの範囲を超えて一般化しない。
一般化可能なニューラルクローン検出のための抽象構文木(AST)を用いたアプローチを提案する。
実験の結果,ASTROはリコールとF-1スコアの両方において最先端のニューラルクローン検出アプローチを改善していることがわかった。
論文 参考訳(メタデータ) (2022-08-17T04:50:51Z) - Evaluation of Contrastive Learning with Various Code Representations for
Code Clone Detection [3.699097874146491]
コードスニペットの意味的クローンを検出するためのコントラスト学習の評価を行った。
CodeTransformatorを使って、競争力のあるプログラミングソリューションに基づいて、プラジャライズされたコードを模倣するデータセットを作成します。
評価の結果,提案手法は各タスクにおいて多種多様な性能を示すが,グラフベースモデルの性能は概して他のモデルよりも優れていることがわかった。
論文 参考訳(メタデータ) (2022-06-17T12:25:44Z) - GraphCodeBERT: Pre-training Code Representations with Data Flow [97.00641522327699]
本稿では,コード固有の構造を考慮したプログラミング言語の事前学習モデルであるGraphCodeBERTを提案する。
これは変数間の"where-the-value-comes-from"の関係をエンコードするコードのセマンティックレベルの構造です。
コード検索,クローン検出,コード翻訳,コード改良の4つのタスクにおいて,本モデルを評価する。
論文 参考訳(メタデータ) (2020-09-17T15:25:56Z) - Contrastive Code Representation Learning [95.86686147053958]
一般的な再構成に基づくBERTモデルは,ソースコードの編集に敏感であることを示す。
コントラコード(ContraCode)は、コード機能を学ぶのにフォームではなく、コントラスト的な事前学習タスクである。
論文 参考訳(メタデータ) (2020-07-09T17:59:06Z) - Learning to map source code to software vulnerability using
code-as-a-graph [67.62847721118142]
セキュリティの観点からソースコードのニュアンス学習におけるグラフニューラルネットワークの適用性について検討する。
我々は,既存のコード・アズ・フォトや線形シーケンスの符号化手法よりも,脆弱性検出に有効なコード・アズ・グラフの符号化法を示す。
論文 参考訳(メタデータ) (2020-06-15T16:05:27Z) - Improved Code Summarization via a Graph Neural Network [96.03715569092523]
一般に、ソースコード要約技術はソースコードを入力として使用し、自然言語記述を出力する。
これらの要約を生成するために、ASTのデフォルト構造によくマッチするグラフベースのニューラルアーキテクチャを使用するアプローチを提案する。
論文 参考訳(メタデータ) (2020-04-06T17:36:42Z) - Auto-Encoding Twin-Bottleneck Hashing [141.5378966676885]
本稿では,効率よく適応的なコード駆動グラフを提案する。
自動エンコーダのコンテキストでデコードすることで更新される。
ベンチマークデータセットの実験は、最先端のハッシュ手法よりもフレームワークの方が優れていることを明らかに示しています。
論文 参考訳(メタデータ) (2020-02-27T05:58:12Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。