arrow
返回

Finding Compiler Bugs through Cross-Language Code Generator and Differential Testing

delete2025-10-01
delete0
PRE
AI
Q
Qiong Feng *
X
Xiaotian Ma
Z
Ziyuan Feng
M
Marat Akhin
W
Wei Song
P
Peng Liang
DOI:10.1145/3763152delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
编译器在将高级代码翻译为可执行程序的过程中扮演着核心角色,其正确性对于确保代码的安全性和可靠性至关重要。尽管大量研究已关注单语言编译器正确性的验证,但涉及两种语言及其各自编译器交互的跨语言编译正确性仍 largely unexplored。为填补这一研究空白,我们提出 CROSSLANGFUZZER,一个引入通用中间表示(IR)的框架,用于 JVM 基于的语言,并自动生成包含多样化类型参数和复杂继承结构的跨语言测试程序。在生成初始 IR 后,CROSSLANGFUZZER 应用三种变异技术——LangShuffler、FunctionRemoval 和 TypeChanger——以增强程序多样性。通过在多个编译器版本上评估原始及变异程序,CROSSLANGFUZZER 成功发现了 10 个 Kotlin 编译器的确认错误、4 个 Groovy 编译器的确认错误、7 个 Scala 3 编译器的确认错误、2 个 Scala 2 编译器的确认错误以及 1 个 Java 编译器的确认错误。在所有变异器中,TypeChanger 效果最为显著,检测出 24 个编译器错误中的 11 个。此外,我们分析了跨编译错误的症状和根本原因,并考察了在跨语言编译过程中出现错误行为时语言编译器的各自责任。据我们所知,这是首个专门聚焦于识别和诊断跨语言编译场景中编译器错误的 work。我们的研究有助于理解这些挑战,并为改进多语言环境下的编译器正确性做出贡献。
Keyword:
Cross-Language
Code Generator
JVM
Differential Testing

期刊

P
Proceedings of the ACM on Programming Languages-PACMPL
IF:
2.8
论文数:
308
被引数:
4.7K

机构

W
Wuhan University
学者数:
5.0K
论文数: 1.7K
被引数: 10.0W
引用论文

引用论文

Compiler validation via equivalence modulo inputs
err2014-06-09
err0
PREAI
errVu Le; Mehrdad Afshari; Zhendong Su
err分享
err收藏
Fuzz4All: Universal Fuzzing with Large Language Models
err2024-04-12
err0
errOAAI
errChunqiu Steven Xia; Matteo Paltenghi; Jia Le Tian; Michael Pradel; Lingming Zhang
err分享
err收藏
Automated detection of inter-language design smells in multi-language deep learning frameworks
err2025-03-01
err0
PREAI
errLi, Zengyang; Zhang, Xiaoyong; Wang, Wenshuo; Liang, Peng; Mo, Ran; Tan, Jie; Liu, Hui
err分享
err收藏
Finding typing compiler bugs
err2022-06-09
err0
PREAI
errChaliasos,Stefanos; Sotiropoulos,Thodoris; Spinellis,Diomidis; Gervais,Arthur; Livshits,Benjamin; Mitropoulos,Dimitris
err分享
err收藏
学者 查看更多内容