{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T11:05:38Z","timestamp":1784199938044,"version":"3.55.0"},"reference-count":60,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","funder":[{"DOI":"10.13039\/501100001459","name":"Ministry of Education - Singapore","doi-asserted-by":"publisher","award":["MOE-T2EP20124-0007"],"award-info":[{"award-number":["MOE-T2EP20124-0007"]}],"id":[{"id":"10.13039\/501100001459","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,6,10]]},"abstract":"<jats:p>\n                    Translating software between programming languages is a challenging task, for which automated techniques have been elusive and hard to scale up to larger programs. A key difficulty in cross-language translation is that one has to re-express the intended behavior of the source program into idiomatic constructs of a different target language. This task needs abstracting away from the source language-specific details, while keeping the overall functionality the same. In this work, we propose a novel and systematic approach for making such translation amenable to automation based on a framework we call\n                    <jats:italic toggle=\"yes\">program skeletons.<\/jats:italic>\n                    A program skeleton retains the high- level structure of the source program by abstracting away and effectively summarizing lower-level concrete code fragments, which can be mechanically translated to the target programming language. A skeleton, by design, permits many different ways of filling in the concrete implementation for fragments, which can work in conjunction with existing data-driven code synthesizers. Most importantly, skeletons can conceptually enable\n                    <jats:italic toggle=\"yes\">sound<\/jats:italic>\n                    decomposition, i.e., if each individual fragment is correctly translated, taken together with the mechanically translated skeleton, the final translated program is deemed to be correct as a whole. We present a prototype system called\n                    <jats:sc>Skel<\/jats:sc>\n                    embodying the idea of skeleton-based translation from Python to JavaScript. Our results show promising scalability compared to prior works. For 9 real-world Python programs, some with more than about 1\n                    <jats:italic toggle=\"yes\">k<\/jats:italic>\n                    lines of code, 95% of their code fragments can be automatically translated, while about 5% require manual effort. All the final translations are correct with respect to whole-program test suites.\n                  <\/jats:p>","DOI":"10.1145\/3729287","type":"journal-article","created":{"date-parts":[[2025,6,13]],"date-time":"2025-06-13T16:02:27Z","timestamp":1749830547000},"page":"920-944","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Program Skeletons for Automated Program Translation"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1444-0237","authenticated-orcid":false,"given":"Bo","family":"Wang","sequence":"first","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-6180-9060","authenticated-orcid":false,"given":"Tianyu","family":"Li","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2513-1704","authenticated-orcid":false,"given":"Ruishi","family":"Li","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7610-0660","authenticated-orcid":false,"given":"Umang","family":"Mathur","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1875-8675","authenticated-orcid":false,"given":"Prateek","family":"Saxena","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,6,13]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","unstructured":"2002. Chapter 15 - Microsoft Says JUMP\u2014Java User Migration Path. In C# For Java Programmers Brian Bagnall Philip Chen Stephen Goldberg Jeremy Fairdoth and Harold Cabrera (Eds.). doi:10.1016\/B978-193183654-8\/50019-0","DOI":"10.1016\/B978-193183654-8\/50019-0"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","unstructured":"2024. Lost in Translation: A Study of Bugs Introduced by Large Language Models while Translating Code. doi:10.1145\/3597503.3639226 arXiv:2308.03109 [cs].","DOI":"10.1145\/3597503.3639226"},{"key":"e_1_3_2_4_2","unstructured":"2025. SKEL:Program Skeletons for Automated Program Translation (GitHub Repository). https:\/\/github.com\/lty12b9b0a1\/SKEL"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/2914770.2837628"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","unstructured":"Mar\u00eda Alpuente Daniel Pardo and Alicia Villanueva. 2015. Automatic inference of specifications in the K framework. arXiv preprint arXiv:1512.06941 (2015). doi:10.4204\/EPTCS.200.1","DOI":"10.4204\/EPTCS.200.1"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-21668-3_10"},{"key":"e_1_3_2_8_2","unstructured":"Anthropic. [n. d.]. Introducing Claude 3.5 Sonnet. https:\/\/www.anthropic.com\/news\/claude-3-5-sonnet"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2018.00074"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-17524-9_1"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480917"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/3689735"},{"key":"e_1_3_2_13_2","unstructured":"Xinyun Chen Chang Liu and Dawn Song. 2018. Tree-to-tree Neural Networks for Program Translation. arXiv:1802.03691 [cs.AI]"},{"issue":"240","key":"e_1_3_2_14_2","first-page":"1","article-title":"Palm: Scaling language modeling with pathways","volume":"24","author":"Chowdhery Aakanksha","year":"2023","unstructured":"Aakanksha Chowdhery, Sharan Narang, Jacob Devlin, Maarten Bosma, Gaurav Mishra, Adam Roberts, Paul Barham, Hyung Won Chung, Charles Sutton, Sebastian Gehrmann, et al. 2023. Palm: Scaling language modeling with pathways. Journal of Machine Learning Research 24, 240 (2023), 1\u2013113.","journal-title":"Journal of Machine Learning Research"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","unstructured":"Michael L. Collard Michael John Decker and Jonathan I. Maletic. 2013. srcML: An Infrastructure for the Exploration Analysis and Manipulation of Source Code: A Tool Demonstration. In 2013 IEEE International Conference on Software Maintenance. 516\u2013519. doi:10.1109\/ICSM.2013.85","DOI":"10.1109\/ICSM.2013.85"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.04.002"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-35873-9_10"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICECCS.2019.00031"},{"key":"e_1_3_2_19_2","volume-title":"Automatic Inference of Permission Specifications","author":"Dohrau J\u00e9r\u00f4me","year":"2022","unstructured":"J\u00e9r\u00f4me Dohrau. 2022. Automatic Inference of Permission Specifications. Ph.D. Dissertation. ETH Zurich. https:\/\/pm.inf.ethz.ch\/publications\/Dohrau2022.pdf"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/3660791"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","unstructured":"Hasan Ferit Eniser Hanliang Zhang Cristina David Meng Wang Brandon Paulsen Joey Dodds and Daniel Kroening. 2024. Towards Translating Real-World Code with LLMs: A Study ofTranslating to Rust. arXiv preprint arXiv:2405.11514 (2024). doi:10.48550\/arXiv.2405.11514","DOI":"10.48550\/arXiv.2405.11514"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2007.01.015"},{"key":"e_1_3_2_23_2","unstructured":"gotranspile. [n. d.]. cxgo: C to Go Translators. https:\/\/github.com\/gotranspile\/cxgo note = Accessed: Nov 1 2024."},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","unstructured":"Ali Reza Ibrahimzada Kaiyao Ke Mrigank Pawagi Muhammad Salman Abid Rangeet Pan Saurabh Sinha and Reyhaneh Jabbarvand. 2024. Repository-Level Compositional Code Translation and Validation. arXiv preprint arXiv:2410.24117 (2024). doi:10.48550\/arXiv.2410.24117","DOI":"10.48550\/arXiv.2410.24117"},{"key":"e_1_3_2_25_2","unstructured":"Immunant. [n. d.]. c2rust: Migrate C code to Rust. https:\/\/github.com\/immunant\/c2rust. Accessed: Nov 1 2024."},{"key":"e_1_3_2_26_2","unstructured":"AnnaIrrera. 2017. Banks scramble to fix old systems as IT \u2018cowboys\u2019 ride into sunset. https:\/\/www.reuters.com\/article\/us-usa-banks-cobol-idUSKBN17C0D8."},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/2908080.2908117"},{"key":"e_1_3_2_28_2","unstructured":"Marie-Anne Lachaux Baptiste Rozi\u00e8re Lowik Chanussot and Guillaume Lample. 2020. Unsupervised Translation of Programming Languages. CoRR abs\/2006.03511 (2020). arXiv:2006.03511 https:\/\/arxiv.org\/abs\/2006.03511"},{"key":"e_1_3_2_29_2","unstructured":"Marie-Anne Lachaux Baptiste Roziere Lowik Chanussot and Guillaume Lample. 2020. Unsupervised Translation of Programming Languages. arXiv:2006.03511 [cs.CL]"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","unstructured":"Ton Chanh Le Guolong Zheng and ThanhVu Nguyen. 2019. SLING: using dynamic analysis to infer program invariants in separation logic. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. 788\u2013801. doi:10.1145\/3314221.3314634","DOI":"10.1145\/3314221.3314634"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","unstructured":"Nelson F. Liu Kevin Lin John Hewitt Ashwin Paranjape Michele Bevilacqua Fabio Petroni and Percy Liang. 2023. Lost in the Middle: How Language Models Use Long Contexts. doi:10.48550\/arXiv.2307.03172 arXiv:2307.03172 [cs.CL]","DOI":"10.48550\/arXiv.2307.03172"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","unstructured":"Anton Lozhkov Raymond Li Loubna Ben Allal Federico Cassano Joel Lamy-Poirier Nouamane Tazi Ao Tang Dmytro Pykhtar Jiawei Liu Yuxiang Wei et al. 2024. Starcoder 2 and the stack v2: The next generation. arXiv preprint arXiv:2402.19173 (2024). doi:10.48550\/arXiv.2402.19173","DOI":"10.48550\/arXiv.2402.19173"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE55347.2025.00129"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1007\/3\u2013540\u201310235\u20133"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/2556782"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","unstructured":"Erik Nijkamp Bo Pang Hiroaki Hayashi Lifu Tu Huan Wang Yingbo Zhou Silvio Savarese and Caiming Xiong. 2022. A conversational paradigm for program synthesis. arXiv preprint arXiv:2203.13474 30 (2022). doi:10.48550\/arXiv.2203.13474","DOI":"10.48550\/arXiv.2203.13474"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/2908080.2908099"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","unstructured":"Jialing Pan Adrien Sad\u00e9 Jin Kim Eric Soriano Guillem Sole and Sylvain Flamant. 2023. SteloCoder: a Decoder-Only LLM for Multi-Language to Python Code Translation. arXiv preprint arXiv:2310.15539 (2023). doi:10.48550\/arXiv.2310.15539","DOI":"10.48550\/arXiv.2310.15539"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/3597503.3639226"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2012.6227137"},{"key":"e_1_3_2_41_2","unstructured":"Terence Parr. 2024. StringTemplate. https:\/\/www.stringtemplate.org\/"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/2858965.2814310"},{"key":"e_1_3_2_43_2","unstructured":"QualityQuick. 2022. Transcrypt: Python to JavaScript compiler. https:\/\/github.com\/qquick\/Transcrypt"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","unstructured":"Baptiste Roziere Jonas Gehring Fabian Gloeckle Sten Sootla Itai Gat Xiaoqing Ellen Tan Yossi Adi Jingyu Liu Romain Sauvestre Tal Remez et al. 2023. Code llama: Open foundation models for code. arXiv preprint arXiv:2308.12950 (2023). doi:10.48550\/arXiv.2308.12950","DOI":"10.48550\/arXiv.2308.12950"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","unstructured":"Baptiste Roziere Jie M Zhang Francois Charton Mark Harman Gabriel Synnaeve and Guillaume Lample. 2021. Leveraging automated unit tests for unsupervised code translation. arXiv preprint arXiv:2110.06 773 (2021). doi:10.48550\/arXiv.2110.06773","DOI":"10.48550\/arXiv.2110.06773"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","unstructured":"Armando Solar-Lezama Christopher Grant Jones and Rastislav Bod\u00edk. 2008. Sketching concurrent data structures. In Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation Tucson AZ USA June 7\u201313 2008. 136\u2013148. doi:10.1145\/1375581.1375599","DOI":"10.1145\/1375581.1375599"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/3656413"},{"key":"e_1_3_2_48_2","unstructured":"Lin Tan Xiaolan Zhang Xiao Ma Weiwei Xiong and Yuanyuan Zhou. 2008. AutolSES: Automatically Inferring Security Specification and Detecting Violations.. In USENIX Security Symposium. 379\u2013394. https:\/\/www.usenix.org\/legacy\/events\/sec08\/tech\/full_papers\/tan_l\/tan_l.pdf"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1109\/52.895180"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","unstructured":"Vasudev Vikram Caroline Lemieux Joshua Sunshine and Rohan Padhye. 2023. Can large language models write good property-based tests? arXiv preprint arXiv:2307.04346 (2023). doi:10.48550\/arXiv.2307.04346","DOI":"10.48550\/arXiv.2307.04346"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/3586034"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","unstructured":"Bo Wang Ruishi Li Mingkai Li and Prateek Saxena. 2023. TransMap: Pinpointing Mistakes in Neural Code Translation. In Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 999\u20131011. doi:10.1145\/3611643.3616322","DOI":"10.1145\/3611643.3616322"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","unstructured":"Bo Wang Tianyu Li Ruishi Li Umang Mathur and Prateek Saxena. 2025. Program Skeletons for Automated Program Translation (Artifact). doi:10.5281\/zenodo.14994890","DOI":"10.5281\/zenodo.14994890"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","unstructured":"Bo Wang Tianyu Li Ruishi Li Umang Mathur and Prateek Saxena. 2025. Program Skeletons for Automated Program Translation (Technical Report). arXiv preprint arXiv:2504.07483 (2025). doi:10.48550\/arXiv.2504.07483","DOI":"10.48550\/arXiv.2504.07483"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","unstructured":"Justin D Weisz Michael Muller Stephanie Houde John Richards Steven I Ross Fernando Martinez Mayank Agarwal and Kartik Talamadupula. 2021. Perfection not required? Human-AI partnerships in code translation. In Proceedings of the 26th International Conference on Intelligent User Interfaces. 402\u2013412. doi:10.1145\/3397481.3450656","DOI":"10.1145\/3397481.3450656"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","unstructured":"Aidan Z. H. Yang Yoshiki Takashima Brandon Paulsen Josiah Dodds and Daniel Kroening. 2024. VERT: Verified Equivalent Rust Transpilation with Large Language Models as Few-Shot Learners. doi:10.48550\/arXiv.2404.18852 arXiv:2404.18852 [cs.PL]","DOI":"10.48550\/arXiv.2404.18852"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","unstructured":"Xin Yin Chao Ni Tien N Nguyen Shaohua Wang and Xiaohu Yang. 2024. Rectifier: Code translation with corrector via llms. arXiv preprint arXiv:2407.07472 (2024). doi:10.48550\/arXiv.2407.07472","DOI":"10.48550\/arXiv.2407.07472"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","unstructured":"Juan Zhai Yu Shi Minxue Pan Guian Zhou Yongxiang Liu Chunrong Fang Shiqing Ma Lin Tan and Xiangyu Zhang. 2020. C2S: translating natural language comments to formal program specifications. In Proceedings of the 28th ACM joint meeting on European software engineering conference and symposium on the foundations of software engineering. 25\u201337. doi:10.1145\/3368089.3409716","DOI":"10.1145\/3368089.3409716"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","unstructured":"Xing Zhang Jiaheng Wen Fangkai Yang Pu Zhao Yu Kang Junhao Wang Maoquan Wang Yufan Huang Elsie Nallipogu Qingwei Lin Yingnong Dang Saravan Rajmohan Dongmei Zhang and Qi Zhang. 2025. Skeleton-Guided- Translation: A Benchmarking Framework for Code Repository Translation with Fine-Grained Quality Evaluation. doi:10.48550\/arXiv.2501.16050 arXiv:2501.16050 [cs.SE]","DOI":"10.48550\/arXiv.2501.16050"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","unstructured":"Zibin Zheng Kaiwen Ning Yanlin Wang Jingwen Zhang Dewu Zheng Mingxi Ye and Jiachi Chen. 2023. A survey of large language models for code: Evolution benchmarking and future trends. arXiv preprint arXiv:2311.10372 (2023). doi:10.48550\/arXiv.2311.10372","DOI":"10.48550\/arXiv.2311.10372"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","unstructured":"Qihao Zhu Daya Guo Zhihong Shao Dejian Yang Peiyi Wang Runxin Xu Y Wu Yukun Li Huazuo Gao Shirong Ma et al. 2024. Deepseek-coder-v2: Breaking the barrier of closed-source models in code intelligence. arXiv preprint arXiv:2406.11931 (2024). doi:10.48550\/arXiv.2406.11931","DOI":"10.48550\/arXiv.2406.11931"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3729287","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:05:56Z","timestamp":1784196356000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3729287"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,10]]},"references-count":60,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2025,6,10]]}},"alternative-id":["10.1145\/3729287"],"URL":"https:\/\/doi.org\/10.1145\/3729287","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,10]]},"assertion":[{"value":"2024-11-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-03-06","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-06-13","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}