論文の概要: Evolutionary Generative Fuzzing for Differential Testing of the Kotlin
Compiler
- arxiv url: http://arxiv.org/abs/2401.06653v1
- Date: Fri, 12 Jan 2024 16:01:12 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-15 18:55:42.001893
- Title: Evolutionary Generative Fuzzing for Differential Testing of the Kotlin
Compiler
- Title(参考訳): Kotlinコンパイラの差分テストのための進化的生成ファズリング
- Authors: Calin Georgescu, Mitchell Olsthoorn, Pouria Derakhshanfar, Marat
Akhin, Annibale Panichella
- Abstract要約: JetBrainsが開発したKotlinコンパイラのバグ発見における差分テストの有効性について検討する。
そこで我々は,K1コンパイラとK2コンパイラの入力プログラムを生成するブラックボックス生成手法を提案する。
ケーススタディでは,提案手法がK1とK2のバグを効果的に検出している。
- 参考スコア(独自算出の注目度): 14.259471945857431
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Compiler correctness is a cornerstone of reliable software development.
However, systematic testing of compilers is infeasible, given the vast space of
possible programs and the complexity of modern programming languages. In this
context, differential testing offers a practical methodology as it addresses
the oracle problem by comparing the output of alternative compilers given the
same set of programs as input. In this paper, we investigate the effectiveness
of differential testing in finding bugs within the Kotlin compilers developed
at JetBrains. We propose a black-box generative approach that creates input
programs for the K1 and K2 compilers. First, we build workable models of Kotlin
semantic (semantic interface) and syntactic (enriched context-free grammar)
language features, which are subsequently exploited to generate random code
snippets. Second, we extend random sampling by introducing two genetic
algorithms (GAs) that aim to generate more diverse input programs. Our case
study shows that the proposed approach effectively detects bugs in K1 and K2;
these bugs have been confirmed and (some) fixed by JetBrains developers. While
we do not observe a significant difference w.r.t. the number of defects
uncovered by the different search algorithms, random search and GAs are
complementary as they find different categories of bugs. Finally, we provide
insights into the relationships between the size, complexity, and fault
detection capability of the generated input programs.
- Abstract(参考訳): コンパイラの正確性は、信頼できるソフトウェア開発の基盤である。
しかし、プログラムの膨大なスペースと現代のプログラミング言語の複雑さを考えると、コンパイラの体系的なテストは実現不可能である。
この文脈では、差分テストは、入力と同じプログラムセットが与えられた代替コンパイラの出力を比較することで、オラクルの問題に対処する実用的な方法論を提供する。
本稿ではJetBrainsが開発したKotlinコンパイラのバグ検出における差分テストの有効性について検討する。
K1およびK2コンパイラの入力プログラムを生成するブラックボックス生成手法を提案する。
まず、kotlinセマンティック(semantic interface)と構文(enriched context-free grammar)言語機能の動作可能なモデルを構築し、その後、ランダムコードスニペットを生成するために活用します。
次に、より多様な入力プログラムを生成するために、2つの遺伝的アルゴリズム(GA)を導入することで、ランダムサンプリングを拡張する。
今回のケーススタディでは,提案手法がk1とk2のバグを効果的に検出できることが示されている。
異なる検索アルゴリズムによって発見された欠陥の数に有意な差はみられないが、ランダム検索とGAは、異なるカテゴリのバグを見つけるために相補的である。
最後に,生成した入力プログラムのサイズ,複雑性,障害検出能力の関係について考察する。
関連論文リスト
- Binary Code Similarity Detection via Graph Contrastive Learning on Intermediate Representations [52.34030226129628]
バイナリコード類似度検出(BCSD)は、脆弱性検出、マルウェア分析、コードの再利用識別など、多くの分野で重要な役割を果たしている。
本稿では,LLVM-IRと高レベルのセマンティック抽象化を利用して,コンパイル差を緩和するIRBinDiffを提案する。
IRBinDiffは1対1の比較と1対多の検索シナリオにおいて,他の主要なBCSD手法よりも優れていることを示す。
論文 参考訳(メタデータ) (2024-10-24T09:09:20Z) - AdaCCD: Adaptive Semantic Contrasts Discovery Based Cross Lingual
Adaptation for Code Clone Detection [69.79627042058048]
AdaCCDは、その言語でアノテーションを使わずに、新しい言語のクローンコードを検出する新しい言語間適応手法である。
5つのプログラミング言語からなる多言語コードクローン検出ベンチマークを構築し,AdaCCDの言語間適応性を評価する。
論文 参考訳(メタデータ) (2023-11-13T12:20:48Z) - Extended Paper: API-driven Program Synthesis for Testing Static Typing
Implementations [11.300829269111627]
本稿では,API駆動型プログラム合成の概念に基づいて静的型付けの実装をテストする新しい手法を提案する。
このアイデアは、既存のソフトウェアライブラリから派生したアプリケーションプログラミングインタフェース(API)を活用して組み合わせることで、型集約型だが小さく、十分に型付けされたプログラムを合成することである。
論文 参考訳(メタデータ) (2023-11-08T08:32:40Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - Directed Test Program Generation for JIT Compiler Bug Localization [3.626013617212667]
Just-in-Time(JIT)コンパイラのバグローカライズ技術は、この目的のために生成されたテストプログラムのセット上で、ターゲットJITコンパイラの実行動作を分析することに基づいている。
本稿ではJITコンパイラのバグローカライゼーションのための新しいテストプログラム生成手法を提案する。
論文 参考訳(メタデータ) (2023-07-17T22:43:02Z) - Teaching Large Language Models to Self-Debug [62.424077000154945]
大規模言語モデル(LLM)は、コード生成において素晴らしいパフォーマンスを達成した。
本稿では,大規模言語モデルで予測プログラムを数発のデモでデバッグする自己デバッグを提案する。
論文 参考訳(メタデータ) (2023-04-11T10:43:43Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Natural Language to Code Translation with Execution [82.52142893010563]
実行結果-プログラム選択のための最小ベイズリスク復号化。
そこで本研究では,自然言語からコードへのタスクにおいて,事前訓練されたコードモデルの性能を向上することを示す。
論文 参考訳(メタデータ) (2022-04-25T06:06:08Z) - Configuring Test Generators using Bug Reports: A Case Study of GCC
Compiler and Csmith [2.1016374925364616]
本稿では,バグレポートのコードスニペットを使用して,テスト生成のガイドを行う。
GCCの8つのバージョンでこのアプローチを評価します。
我々は,本手法がGCCの最先端テスト生成技術よりも高いカバレッジを提供し,誤コンパイル障害を引き起こすことを発見した。
論文 参考訳(メタデータ) (2020-12-19T11:25:13Z) - Detecting and Understanding Real-World Differential Performance Bugs in
Machine Learning Libraries [2.879036956042183]
同じサイズであるにもかかわらず、パフォーマンスが広く変化するインプットを見つけます。
我々は,単一入力だけでなく,各クラスがそれぞれのサイズによってパラメータ化される類似入力を持つ入力のクラスの性能を比較する。
重要なことに、パフォーマンスバグの修正に簡単に使用できる形式で、なぜパフォーマンスが異なるのか、という説明も提供します。
論文 参考訳(メタデータ) (2020-06-03T00:23:06Z) - Using Large-Scale Anomaly Detection on Code to Improve Kotlin Compiler [4.179323589439977]
ソースコードとバイトコードに異常検出を適用し,プログラム言語の開発を容易にする。
我々は、異常を特定のプログラミング言語で書かれた典型的なコードとは異なるコードフラグメントとして定義する。
論文 参考訳(メタデータ) (2020-04-03T15:20:06Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。