{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T11:11:58Z","timestamp":1784200318995,"version":"3.55.0"},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["62172311"],"award-info":[{"award-number":["62172311"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,10,9]]},"abstract":"<jats:p>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 \u2014 which involves the interaction between two languages and their respective compilers \u2014 remains largely unexplored.<\/jats:p>\n                  <jats:p>\n                    To fill this research gap, we propose\n                    <jats:sc>CrossLangFuzzer<\/jats:sc>\n                    , 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,\n                    <jats:sc>CrossLangFuzzer<\/jats:sc>\n                    applies three mutation techniques \u2014\n                    <jats:italic toggle=\"yes\">LangShuffler, FunctionRemoval<\/jats:italic>\n                    , and\n                    <jats:italic toggle=\"yes\">TypeChanger<\/jats:italic>\n                    \u2014 to enhance program diversity. By evaluating both the original and mutated programs across multiple compiler versions,\n                    <jats:sc>CrossLangFuzzer<\/jats:sc>\n                    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,\n                    <jats:italic toggle=\"yes\">TypeChanger<\/jats:italic>\n                    is the most effective, detecting 11 of the 24 compiler bugs.\n                  <\/jats:p>\n                  <jats:p>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.<\/jats:p>","DOI":"10.1145\/3763152","type":"journal-article","created":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T08:51:31Z","timestamp":1759999891000},"page":"2843-2869","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Finding Compiler Bugs through Cross-Language Code Generator and Differential Testing"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1667-8062","authenticated-orcid":false,"given":"Qiong","family":"Feng","sequence":"first","affiliation":[{"name":"Nanjing University of Science and Technology, Nanjing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-9121-3656","authenticated-orcid":false,"given":"Xiaotian","family":"Ma","sequence":"additional","affiliation":[{"name":"Nanjing University of Science and Technology, Nanjing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-4747-3831","authenticated-orcid":false,"given":"Ziyuan","family":"Feng","sequence":"additional","affiliation":[{"name":"Nanjing University of Science and Technology, Nanjing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-1683-6654","authenticated-orcid":false,"given":"Marat","family":"Akhin","sequence":"additional","affiliation":[{"name":"JetBrains, Amsterdam, Netherlands"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4324-3382","authenticated-orcid":false,"given":"Wei","family":"Song","sequence":"additional","affiliation":[{"name":"Nanjing University of Science and Technology, Nanjing, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2056-5346","authenticated-orcid":false,"given":"Peng","family":"Liang","sequence":"additional","affiliation":[{"name":"Wuhan University, Wuhan, China"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,10,9]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","unstructured":"[n. d.]. Data and Source Code on Zenodo of the Paper: Finding Compiler Bugs through Cross-Language Code Generator and Differential Testing. https:\/\/doi.org\/10.5281\/zenodo.15753913 10.5281\/zenodo.15753913","DOI":"10.5281\/zenodo.15753913"},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/3432690"},{"key":"e_1_3_1_4_2","unstructured":"Marat Akhin and Mikhail Belyaev. 2021. Kotlin language specification. Kotlin Language Specification. https:\/\/kotlinlang.org\/spec\/pdf\/kotlin-spec.pdf"},{"key":"e_1_3_1_5_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2020.106374"},{"key":"e_1_3_1_6_2","unstructured":"Sara Baradaran Liyan Huang Mukund Raghothaman and Weihang Wang. 2024. Reusing Legacy Code in WebAssembly: Key Challenges of Cross-Compilation and Code Semantics Preservation. arXiv preprint arXiv:2412.20258. https:\/\/arxiv.org\/abs\/2412.20258"},{"key":"e_1_3_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/3485500"},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","unstructured":"Stefanos Chaliasos Thodoris Sotiropoulos Diomidis Spinellis Arthur Gervais Benjamin Livshits and Dimitris Mitropoulos. 2022. Finding typing compiler bugs. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI). 183\u2013198. doi:10.1145\/3519939.3523427","DOI":"10.1145\/3519939.3523427"},{"key":"e_1_3_1_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/3363562"},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","unstructured":"Yuting Chen Ting Su Chengnian Sun Zhendong Su and Jianjun Zhao. 2016. Coverage-directed differential testing of JVM implementations. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 85\u201399. doi:10.1145\/2908080.2908095","DOI":"10.1145\/2908080.2908095"},{"key":"e_1_3_1_11_2","doi-asserted-by":"publisher","unstructured":"Yinlin Deng Chunqiu Steven Xia Haoran Peng Chenyuan Yang and Lingming Zhang. 2023. Large language models are zero-shot fuzzers: Fuzzing deep-learning libraries via large language models. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA). 423\u2013435. doi:10.1145\/3597926.3598067","DOI":"10.1145\/3597926.3598067"},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","unstructured":"Kyle Dewey Jared Roesch and Ben Hardekopf. 2014. Language fuzzing using constraint logic programming. In Proceedings of the 29th ACM\/IEEE International Conference on Automated Software Engineering (ASE). 725\u2013730. doi:10.1145\/2642937.2642963","DOI":"10.1145\/2642937.2642963"},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.65"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","unstructured":"Qiong Feng Huan Ji Xiaotian Ma and Peng Liang. 2024. Cross-Language Dependencies: An Empirical Study of Kotlin-Java. In Proceedings of the 18th ACM\/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). 189\u2013199. doi:10.1145\/3674805.3686680","DOI":"10.1145\/3674805.3686680"},{"key":"e_1_3_1_15_2","doi-asserted-by":"publisher","unstructured":"Qiong Feng Xiaotian Ma Huan Ji Wei Song and Peng Liang. 2024. Depends-Kotlin: A Cross-Language Kotlin Dependency Extractor. In Proceedings of the 39th IEEE\/ACM International Conference on Automated Software Engineering (ICSE). 2370\u20132373. doi:10.1145\/3691620.3695354","DOI":"10.1145\/3691620.3695354"},{"key":"e_1_3_1_16_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-39322-9_5"},{"key":"e_1_3_1_17_2","doi-asserted-by":"publisher","unstructured":"C\u0103lin Georgescu Mitchell Olsthoorn Pouria Derakhshanfar Marat Akhin and Annibale Panichella. 2024. Evolutionary Generative Fuzzing for Differential Testing of the Kotlin Compiler. In Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering (FSE) Companion. 197\u2013207. doi:10.1145\/3663529.3663864","DOI":"10.1145\/3663529.3663864"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3201898"},{"key":"e_1_3_1_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/2666356.2594334"},{"key":"e_1_3_1_20_2","doi-asserted-by":"publisher","unstructured":"Hongyu Li Liwei Guo Yexuan Yang Shangguang Wang and Mengwei Xu. 2024. An Empirical Study of Rust-for-Linux: The Success Dissatisfaction and Compromise. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC). 425\u2013443. doi:10.5555\/3691992.3692019","DOI":"10.5555\/3691992.3692019"},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","unstructured":"Wen Li Li Li and Haipeng Cai. 2022. On the vulnerability proneness of multilingual code. In Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC\/FSE). 847\u2013859. doi:10.1145\/3540250.3549173","DOI":"10.1145\/3540250.3549173"},{"key":"e_1_3_1_22_2","unstructured":"Wen Li Jiang Ming Xiapu Luo and Haipeng Cai. 2022. PolyCruise: A Cross-Language dynamic information flow analysis. In Proceedings of the 31st USENIX Security Symposium (USENIX Security). 2513\u20132530.https:\/\/www.usenix.org\/conference\/usenixsecurity22\/presentation\/li-wen"},{"key":"e_1_3_1_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC58990.2023.00047"},{"key":"e_1_3_1_24_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2024.107656"},{"key":"e_1_3_1_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/2813885.2737986"},{"key":"e_1_3_1_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/3428264"},{"key":"e_1_3_1_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/3093334.2989232"},{"key":"e_1_3_1_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/3382494.3410676"},{"key":"e_1_3_1_29_2","doi-asserted-by":"publisher","unstructured":"George Mathew and Kathryn T Stolee. 2021. Cross-language code search using static and dynamic analyses. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC\/FSE). 205\u2013217. doi:10.1145\/3468264.3468538","DOI":"10.1145\/3468264.3468538"},{"key":"e_1_3_1_30_2","doi-asserted-by":"publisher","unstructured":"Xianfei Ou Cong Li Yanyan Jiang and Chang Xu. 2024. The Mutators Reloaded: Fuzzing Compilers with Large Language Model Generated Mutation Operators. In Proceedings of the 2024 ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 1\u201315. doi:10.1145\/3622781.3674171","DOI":"10.1145\/3622781.3674171"},{"key":"e_1_3_1_31_2","doi-asserted-by":"publisher","unstructured":"Shane Panter and Nasir Eisty. 2024. Rusty linux: Advances in rust for linux kernel development. In Proceedings of the 18th ACM\/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). 496\u2013502. doi:10.1145\/3674805.3690756","DOI":"10.1145\/3674805.3690756"},{"key":"e_1_3_1_32_2","unstructured":"Jibesh Patra and Michael Pradel. 2016. Learning to fuzz: Application-independent fuzz testing with probabilistic generative models of input data. TU Darmstadt Department of Computer Science Tech. Rep. TUD-CS-2016-14664 (2016). https:\/\/software-lab.org\/publications\/TreeFuzz_TR_Nov2016.pdf"},{"key":"e_1_3_1_33_2","doi-asserted-by":"publisher","unstructured":"Mingyuan Wu Yicheng Ouyang Minghai Lu Junjie Chen Yingquan Zhao Heming Cui Guowei Yang and Yuqun Zhang. 2023. SJFuzz: Seed and Mutator Scheduling for JVM Fuzzing. In Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC\/FSE). 1062\u20131074. doi:10.1145\/3611643.3616277","DOI":"10.1145\/3611643.3616277"},{"key":"e_1_3_1_34_2","doi-asserted-by":"publisher","unstructured":"Chunqiu Steven Xia Matteo Paltenghi Jia Le Tian Michael Pradel and Lingming Zhang. 2024. Fuzz4all: Universal fuzzing with large language models. In Proceedings of the 46th IEEE\/ACM International Conference on Software Engineering (ESEM). 1\u201313. doi:10.1145\/3597503.3639121","DOI":"10.1145\/3597503.3639121"},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","unstructured":"Hao Xiong Qinming Dai Rui Chang Mingran Qiu Renxiang Wang Wenbo Shen and Yajin Zhou. 2024. Atlas: Automating Cross-Language Fuzzing on Android Closed-Source Libraries. In Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA). 350\u2013362. doi:10.1145\/3650212.3652133","DOI":"10.1145\/3650212.3652133"},{"key":"e_1_3_1_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/3689736"},{"key":"e_1_3_1_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00157"},{"key":"e_1_3_1_38_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2024.3358258"},{"key":"e_1_3_1_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/3660804"},{"key":"e_1_3_1_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993532"},{"key":"e_1_3_1_41_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.3199"},{"key":"e_1_3_1_42_2","doi-asserted-by":"publisher","unstructured":"Zhiqiang Zang Nathan Wiatrek Milos Gligoric and August Shi. 2022. Compiler testing using template java programs. In Proceedings of the 37th IEEE\/ACM International Conference on Automated Software Engineering (ASE). 1\u201313. doi:10.1145\/3551349.3556958","DOI":"10.1145\/3551349.3556958"},{"key":"e_1_3_1_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/3643777"},{"key":"e_1_3_1_44_2","doi-asserted-by":"publisher","unstructured":"Yingquan Zhao Zan Wang Junjie Chen Mengdi Liu Mingyuan Wu Yuqun Zhang and Lingming Zhang. 2022. History-driven test program synthesis for JVM testing. In Proceedings of the 44th International Conference on Software Engineering (ICSE). 1133\u20131144. doi:10.1145\/3510003.3510059","DOI":"10.1145\/3510003.3510059"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3763152","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:16:51Z","timestamp":1784197011000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3763152"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,10,9]]},"references-count":43,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2025,10,9]]}},"alternative-id":["10.1145\/3763152"],"URL":"https:\/\/doi.org\/10.1145\/3763152","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,10,9]]},"assertion":[{"value":"2025-03-25","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-08-12","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-10-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}