SPLASH 2025
Sun 12 - Sat 18 October 2025 Singapore
co-located with ICFP/SPLASH 2025
Fri 17 Oct 2025 16:45 - 17:00 at Orchid Plenary Ballroom - Testing 2 Chair(s): Owolabi Legunsen

Compilers play a central role in translating high-level code into executable programs, making their correctness essential for ensuring code safety and reliability. While extensive research has focused on verifying the correctness of compilers for single-language compilation, the correctness of cross-language compilation—which involves the interaction between two languages and their respective compilers—remains largely unexplored.

To fill this research gap, we propose CrossLangFuzzer, a novel framework that introduces a universal intermediate representation (IR) for JVM-based languages and automatically generates cross-language test programs with diverse type parameters and complex inheritance structures. After generating the initial IR, CrossLangFuzzer applies three mutation techniques — LangShuffler, FunctionRemoval, and TypeChanger — to enhance program diversity. By evaluating both the original and mutated programs across multiple compiler versions, CrossLangFuzzer successfully uncovered 10 confirmed bugs in the Kotlin compiler, 4 confirmed bugs in the Groovy compiler, 7 confirmed bugs in the Scala 3 compiler, 2 confirmed bugs in the Scala 2 compiler, and 1 confirmed bug in the Java compiler. Among all mutators, TypeChanger is the most effective, detecting 11 of the 24 compiler bugs.

Furthermore, we analyze the symptoms and root causes of cross-compilation bugs, examining the respective responsibilities of language compilers when incorrect behavior occurs during cross-language compilation. To the best of our knowledge, this is the first work specifically focused on identifying and diagnosing compiler bugs in cross-language compilation scenarios. Our research helps to understand these challenges and contributes to improving compiler correctness in multi-language environments.

Fri 17 Oct

Displayed time zone: Perth change

16:00 - 17:30
Testing 2OOPSLA at Orchid Plenary Ballroom
Chair(s): Owolabi Legunsen Cornell University
16:00
15m
Talk
Bennet: Randomized Specification Testing for Heap-Manipulating Programs
OOPSLA
Zain K Aamer University of Pennsylvania, Benjamin C. Pierce University of Pennsylvania
16:15
15m
Talk
DepFuzz: Efficient Smart Contract Fuzzing with Function Dependence Guidance
OOPSLA
Chenyang Ma Nanjing University of Science and Technology, Wei Song Nanjing University of Science and Technology, Jeff Huang Texas A&M University
DOI
16:30
15m
Talk
Extraction and Mutation at a High Level: Template-Based Fuzzing for JavaScript Engines
OOPSLA
Wai Kin Wong Hong Kong University of Science and Technology, Dongwei Xiao Hong Kong University of Science and Technology, Cheuk Tung LAI VX Research Limited, Yiteng Peng Hong Kong University of Science and Technology, Daoyuan Wu Lingnan University, Shuai Wang Hong Kong University of Science and Technology
16:45
15m
Talk
Finding Compiler Bugs through Cross-Language Code Generator and Differential Testing
OOPSLA
Qiong Feng Nanjing University of Science and Technology, Xiaotian Ma Nanjing University of Science and Technology, Ziyuan Feng Nanjing University of Science and Technology, Marat Akhin JetBrains, Wei Song Nanjing University of Science and Technology, Peng Liang Wuhan University, China
DOI
17:00
15m
Talk
Formalizing Linear Motion G-code for Invariant Checking and Differential Testing of Fabrication Tools
OOPSLA
Yumeng He University of Utah, Chandrakana Nandi Certora, Sreepathi Pai University of Rochester