{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,20]],"date-time":"2025-11-20T19:09:27Z","timestamp":1763665767945,"version":"3.41.0"},"reference-count":52,"publisher":"Association for Computing Machinery (ACM)","issue":"FSE","funder":[{"name":"NSF","award":["2505223"],"award-info":[{"award-number":["2505223"]}]},{"name":"Office of Naval Research","award":["N000142212111"],"award-info":[{"award-number":["N000142212111"]}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. ACM Softw. Eng."],"published-print":{"date-parts":[[2025,6,19]]},"abstract":"<jats:p>Multilingual systems are prevalent and broadly impactful, but also complex due to the intricate interactions between the heterogeneous programming languages the systems are developed in. This complexity is further aggravated by the diversity of cross-language interoperability across different language combinations, resulting in additional, often stealthy cross-language bugs. Yet despite the growing number of tools aimed to discover cross-language bugs, a systematic understanding of such bugs is still lacking. To fill this gap, we conduct the first comprehensive study of cross-language bugs, characterizing them in 5 aspects including their symptoms, locations, manifestation, root causes, and fixes, as well as their relationships. Through careful identification and detailed analysis of 400 cross-language bugs in real-world multilingual projects classified from 54,356 relevant code commits in their GitHub repositories, we revealed not only bug characteristics of those five aspects but also how they compare between two top language combinations in the multilingual world (Python-C and Java-C). In addition to findings of the study as well as its enabling tools and datasets, we also provide practical recommendations regarding the prevention, detection, and patching of cross-language bugs.<\/jats:p>","DOI":"10.1145\/3715777","type":"journal-article","created":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T15:15:34Z","timestamp":1750346134000},"page":"1270-1292","source":"Crossref","is-referenced-by-count":2,"title":["Dissecting Real-World Cross-Language Bugs"],"prefix":"10.1145","volume":"2","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9298-9757","authenticated-orcid":false,"given":"Haoran","family":"Yang","sequence":"first","affiliation":[{"name":"Washington State University, Pullman, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5224-9970","authenticated-orcid":false,"given":"Haipeng","family":"Cai","sequence":"additional","affiliation":[{"name":"SUNY Buffalo, Buffalo, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,6,19]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/3370272.3370280"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3432690"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00038"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3340571"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/COMPSAC.2013.55"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3457682.3457756"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2018.09.016"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2534706.2534719"},{"key":"e_1_2_1_9_1","volume-title":"Second International Workshop on Public Data about Software Development (WoPDaSD\u201907)","author":"Delorey Daniel P","year":"2007","unstructured":"Daniel P Delorey, Charles D Knutson, and Christophe Giraud-Carrier. 2007. Programming language trends in open source development: An evaluation using data from all production phase SourceForge projects. In Second International Workshop on Public Data about Software Development (WoPDaSD\u201907). 1\u20135."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2021.24224"},{"key":"e_1_2_1_11_1","unstructured":"GitHub Inc.. 2023. GitHub REST API: provide APIs to retrive or query repositories in GitHub. https:\/\/docs.github.com\/en\/rest Accessed: 2025-02-02"},{"key":"e_1_2_1_12_1","unstructured":"Charlie Gracie. 2018. commit of ibmruntimes\/openj9-openjdk-jdk8."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TR.2020.3024873"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1002\/smr.2507"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE43902.2021.00151"},{"key":"e_1_2_1_16_1","volume-title":"Software engineering best practices: lessons from successful projects in the top companies","author":"Jones Capers","unstructured":"Capers Jones. 2010. Software engineering best practices: lessons from successful projects in the top companies. McGraw-Hill Education."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2016.112"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3324884.3416558"},{"key":"e_1_2_1_19_1","volume-title":"31st USENIX Security Symposium (USENIX Security 22)","author":"Li Wen","year":"2022","unstructured":"Wen Li, Ming Jiang, Xiapu Luo, and Haipeng Cai. 2022. PolyCruise: A cross-language dynamic information flow analysis. In 31st USENIX Security Symposium (USENIX Security 22). 2513\u20132530."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.6084\/m9.figshare.16528521.v1"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3558925"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3631967"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE-Companion52605.2021.00119"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.5555\/3620237.3620315"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3576915.3623166"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2024.107524"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC58990.2023.00047"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM56168.2023.10304793"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00607-016-0528-3"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2745802.2745805"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1186\/s40411-017-0035-z"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509515"},{"key":"e_1_2_1_33_1","volume-title":"Sources of error in the coding of questionnaire data. Sociological methods & research, 3, 2","author":"Morrissey Elizabeth R","year":"1974","unstructured":"Elizabeth R Morrissey. 1974. Sources of error in the coding of questionnaire data. Sociological methods & research, 3, 2 (1974), 209\u2013232."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/QRS.2016.22"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44801-2_8"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884848"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635922"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER50967.2021.00064"},{"key":"e_1_2_1_39_1","unstructured":"Michael Seifert. 2019. commit of MSeifert04\/iteration_utilities."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/367008.367022"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3383219.3383227"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884858"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2601248.2601269"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1098\/rsif.2015.0249"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-03260-3_34"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2014.44"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3560880"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00157"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2024.3358258"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/3660804"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.3199"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2019.2961897"}],"container-title":["Proceedings of the ACM on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3715777","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T15:17:01Z","timestamp":1750346221000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3715777"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,19]]},"references-count":52,"journal-issue":{"issue":"FSE","published-print":{"date-parts":[[2025,6,19]]}},"alternative-id":["10.1145\/3715777"],"URL":"https:\/\/doi.org\/10.1145\/3715777","relation":{},"ISSN":["2994-970X"],"issn-type":[{"value":"2994-970X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,19]]}}}