CONCORD: Towards a DSL for Configurable Graph Code Representation

要約

ディープラーニングは、大規模なコードコーパスに隠されたパターンを発見するために広く使用されています。
これを達成するには、ソース コードの関連する特性や機能をキャプチャする形式を構築することが不可欠です。
グラフベースの表現は、構造的および意味論的な情報をモデル化する機能で注目を集めています。
ただし、既存のツールには、さまざまなプログラミング言語間でグラフを構築する柔軟性が欠けており、その使用が制限されています。
さらに、これらのツールの出力には相互運用性が欠けていることが多く、グラフが過度に大きくなり、グラフベースのニューラル ネットワークのトレーニングが遅くなり、スケーラビリティが低くなります。
カスタマイズ可能なグラフ表現を構築するためのドメイン固有言語である CONCORD を紹介します。
削減ヒューリスティックを実装して、グラフのサイズの複雑さを軽減します。
私たちは、例示的なユースケースとしてコード匂い検出におけるその有効性を実証し、まず、CONCORD が指定された構成に従ってコード表現を自動的に生成できること、そして第 2 に、当社のヒューリスティックがサイズを大幅に削減しながら同等のパフォーマンスを達成できることを示します。
CONCORD は、研究者が、a) DL を含むさまざまなソフトウェア エンジニアリング タスク向けにカスタマイズ可能なグラフベースのコード表現を作成および実験する、b) グラフ表現を生成するためのエンジニアリング作業を削減する、c) GNN モデルのスケーラビリティの問題に対処する、および d) 機能を強化するのに役立ちます。
コードの表現と分析に対する標準化されたアプローチを通じて、研究における実験の再現性を実現します。

要約(オリジナル)

Deep learning is widely used to uncover hidden patterns in large code corpora. To achieve this, constructing a format that captures the relevant characteristics and features of source code is essential. Graph-based representations have gained attention for their ability to model structural and semantic information. However, existing tools lack flexibility in constructing graphs across different programming languages, limiting their use. Additionally, the output of these tools often lacks interoperability and results in excessively large graphs, making graph-based neural networks training slower and less scalable. We introduce CONCORD, a domain-specific language to build customizable graph representations. It implements reduction heuristics to reduce graphs’ size complexity. We demonstrate its effectiveness in code smell detection as an illustrative use case and show that: first, CONCORD can produce code representations automatically per the specified configuration, and second, our heuristics can achieve comparable performance with significantly reduced size. CONCORD will help researchers a) create and experiment with customizable graph-based code representations for different software engineering tasks involving DL, b) reduce the engineering work to generate graph representations, c) address the issue of scalability in GNN models, and d) enhance the reproducibility of experiments in research through a standardized approach to code representation and analysis.

arxiv情報

著者 Mootez Saad,Tushar Sharma
発行日 2024-01-31 16:16:48+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.LG, cs.SE パーマリンク