{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T12:19:27Z","timestamp":1784204367356,"version":"3.55.0"},"publisher-location":"Cham","reference-count":50,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783032008275","type":"print"},{"value":"9783032008282","type":"electronic"}],"license":[{"start":{"date-parts":[[2025,10,17]],"date-time":"2025-10-17T00:00:00Z","timestamp":1760659200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,10,17]],"date-time":"2025-10-17T00:00:00Z","timestamp":1760659200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2026]]},"DOI":"10.1007\/978-3-032-00828-2_16","type":"book-chapter","created":{"date-parts":[[2025,10,16]],"date-time":"2025-10-16T16:23:50Z","timestamp":1760631830000},"page":"283-302","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["RustMap: Towards Project-Scale C-to-Rust Migration via\u00a0Program Analysis and\u00a0LLM"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0009-0004-1777-7139","authenticated-orcid":false,"given":"Xuemeng","family":"Cai","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7273-6709","authenticated-orcid":false,"given":"Jiakun","family":"Liu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Xiping","family":"Huang","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7154-8570","authenticated-orcid":false,"given":"Yijun","family":"Yu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-4481-2617","authenticated-orcid":false,"given":"Haitao","family":"Wu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8196-5274","authenticated-orcid":false,"given":"Chunmiao","family":"Li","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7944-9182","authenticated-orcid":false,"given":"Bo","family":"Wang","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0900-5230","authenticated-orcid":false,"given":"Imam Nur Bani","family":"Yusuf","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4336-8548","authenticated-orcid":false,"given":"Lingxiao","family":"Jiang","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2025,10,17]]},"reference":[{"key":"16_CR1","doi-asserted-by":"publisher","unstructured":"Astrauskas, V., Matheja, C., Poli, F., M\u00fcller, P., Summers, A.J.: How do programmers use unsafe rust? Proc. ACM Program. Lang. 4(OOPSLA) (2020). https:\/\/doi.org\/10.1145\/3428204","DOI":"10.1145\/3428204"},{"key":"16_CR2","unstructured":"Bang, I., Kayondo, M., Moon, H., Paek, Y.: TRUST: a compilation framework for in-process isolation to protect safe rust against untrusted code. In: 32nd USENIX Security Symposium (USENIX Security), Baltimore, MD, USA (2023)"},{"key":"16_CR3","unstructured":"casey: Awesome rewrite it in rust (2024). https:\/\/github.com\/casey\/awesome-rewrite-it-in-rust. A curated list of replacements for existing software written in Rust"},{"key":"16_CR4","doi-asserted-by":"crossref","unstructured":"Li, C., Wu, Y.: Demystifying compiler unstable feature usage and impacts in the rust ecosystem. In: Proceedings of the International Conference on Software Engineering (ICSE) (2024)","DOI":"10.1145\/3597503.3623352"},{"key":"16_CR5","doi-asserted-by":"crossref","unstructured":"Li, C., Yu, Y.: Unleashing the power of clippy in real-world rust projects. In: Proceedings of the International Conference on Software Engineering (ICSE) (2024)","DOI":"10.1145\/3639478.3643096"},{"key":"16_CR6","unstructured":"Crates.io: Complexity\u2014calculate cognitive complexity of rust code (2024). https:\/\/crates.io\/crates\/complexity"},{"key":"16_CR7","unstructured":"Deligiannis, P., Lal, A., Mehrotra, N., Rastogi, A.: Fixing rust compilation errors using LLMs. arXiv preprint arXiv:2308.05177 (2023)"},{"key":"16_CR8","unstructured":"developer.arm.com: Complex macros in C (2024). https:\/\/developer.arm.com\/documentation\/101655\/latest\/Cx51-User-s-Guide\/Preprocessor\/Macros\/Complex-Macros"},{"issue":"OOPSLA1","key":"16_CR9","doi-asserted-by":"publisher","first-page":"551","DOI":"10.1145\/3586046","volume":"7","author":"M Emre","year":"2023","unstructured":"Emre, M., Boyland, P., Parekh, A., Schroeder, R., Dewey, K., Hardekopf, B.: Aliasing limits on translating C to safe rust. Proc. ACM Program. Lang. 7(OOPSLA1), 551\u2013579 (2023)","journal-title":"Proc. ACM Program. Lang."},{"key":"16_CR10","doi-asserted-by":"crossref","unstructured":"Emre, M., Schroeder, R., Dewey, K., Hardekopf, B.: Translating C to safer rust. Proc. ACM Program. Lang. 5(OOPSLA), 1\u201329 (2021)","DOI":"10.1145\/3485498"},{"key":"16_CR11","unstructured":"Eniser, H.F., et al.: Towards translating real-world code with LLMs: a study of translating to rust. arXiv preprint arXiv:2405.11514 (2024)"},{"key":"16_CR12","doi-asserted-by":"crossref","unstructured":"Fiala, J., Itzhaky, S., M\u00fcller, P., Polikarpova, N., Sergey, I.: Leveraging rust types for program synthesis. Proc. ACM Program. Lang. 7(PLDI), 1414\u20131437 (2023)","DOI":"10.1145\/3591278"},{"key":"16_CR13","doi-asserted-by":"crossref","unstructured":"u Graham, S.L., Kessler, P.B., McKusick, M.K.: Gprof: a call graph execution profiler. ACM Sigplan Not. 17(6), 120\u2013126 (1982). https:\/\/sourceware.org\/binutils\/docs\/gprof\/","DOI":"10.1145\/872726.806987"},{"key":"16_CR14","doi-asserted-by":"publisher","unstructured":"Guo, Q., et al.: Exploring the potential of ChatGPT in automated code refinement: an empirical study. CoRR abs\/2309.08221 (2023). https:\/\/doi.org\/10.48550\/ARXIV.2309.08221","DOI":"10.48550\/ARXIV.2309.08221"},{"key":"16_CR15","doi-asserted-by":"crossref","unstructured":"Hong, J., Ryu, S.: Don\u2019t write, but return: replacing output parameters with algebraic data types in C-to-Rust translation. Proc. ACM Program. Lang. 8(PLDI), 716\u2013740 (2024)","DOI":"10.1145\/3656406"},{"key":"16_CR16","doi-asserted-by":"crossref","unstructured":"Hong, J., Ryu, S.: To tag, or not to tag: Translating C\u2019s unions to Rust\u2019s tagged unions. In: Proceedings of the 39th IEEE\/ACM International Conference on Automated Software Engineering, pp. 40\u201352 (2024)","DOI":"10.1145\/3691620.3694985"},{"issue":"1","key":"16_CR17","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1007\/s10664-024-10573-2","volume":"30","author":"J Hong","year":"2025","unstructured":"Hong, J., Ryu, S.: Type-migrating C-to-Rust translation using a large language model. Empir. Softw. Eng. 30(1), 3 (2025)","journal-title":"Empir. Softw. Eng."},{"key":"16_CR18","unstructured":"Immunant, I.: c2rust - c to rust translation and more (2024). https:\/\/github.com\/immunant\/c2rust#faq. Accessed 03 June 2024"},{"key":"16_CR19","unstructured":"InfoQ: Rust reviewed: the current trends and pitfalls of the ecosystem (2023). https:\/\/www.infoq.com\/articles\/rust-ecosystem-review-2023\/. A review of the current trends and pitfalls in the Rust ecosystem"},{"key":"16_CR20","doi-asserted-by":"crossref","unstructured":"Islam, R., Moushi, O.M.: GPT-4o: The cutting-edge advancement in multimodal LLM. Authorea Preprints (2024)","DOI":"10.36227\/techrxiv.171986596.65533294\/v1"},{"key":"16_CR21","doi-asserted-by":"crossref","unstructured":"Jung, R., Jourdan, J.H., Krebbers, R., Dreyer, D.: RustBelt: securing the foundations of the rust programming language. Proc. ACM Program. Lang. 2(POPL), 1\u201334 (2017)","DOI":"10.1145\/3158154"},{"key":"16_CR22","unstructured":"rust lang.org: Unsafe rust (2023). https:\/\/doc.rust-lang.org\/book\/ch19-01-unsafe-rust.html. Accessed 18 Nov 2023"},{"key":"16_CR23","doi-asserted-by":"crossref","unstructured":"Ling, M., Yu, Y., Wu, H., Wang, Y., Cordy, J.R., Hassan, A.E.: In rust we trust: a transpiler from unsafe c to safer rust. In: Proceedings of the ACM\/IEEE 44th International Conference on Software Engineering: Companion Proceedings, pp. 354\u2013355 (2022)","DOI":"10.1145\/3510454.3528640"},{"key":"16_CR24","doi-asserted-by":"crossref","unstructured":"Liu, J., Xia, C.S., Wang, Y., Zhang, L.: Is your code generated by chatGPT really correct? Rigorous evaluation of large language models for code generation. Adv. Neural Inf. Process. Syst. 36 (2024)","DOI":"10.52202\/075280-0943"},{"key":"16_CR25","doi-asserted-by":"crossref","unstructured":"Matsushita, Y., Denis, X., Jourdan, J.H., Dreyer, D.: RustHornBelt: a semantic foundation for functional verification of rust programs with unsafe code. In: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, pp. 841\u2013856 (2022)","DOI":"10.1145\/3519939.3523704"},{"key":"16_CR26","unstructured":"Mertens, E., Langley, T.: C2Rust: migrating C to safe rust (2018). https:\/\/galois.com\/blog\/2018\/08\/c2rust\/. Accessed 24 May 2024"},{"key":"16_CR27","doi-asserted-by":"crossref","unstructured":"Cui, M., Sun, S.: Is unsafe an Achilles\u2019 heel? A comprehensive study of safety requirements in unsafe rust programming. In: Proceedings of the International Conference on Software Engineering (ICSE) (2024)","DOI":"10.1145\/3597503.3639136"},{"key":"16_CR28","unstructured":"Mol, M.: Rosetta code. https:\/\/rosettacode.org. Accessed 29 May 2024"},{"key":"16_CR29","unstructured":"OpenAI: GPT-4 technical report. Technical report, OpenAI (2024)"},{"key":"16_CR30","doi-asserted-by":"crossref","unstructured":"Pan, R., et al.: Lost in translation: a study of bugs introduced by large language models while translating code. In: Proceedings of the IEEE\/ACM 46th International Conference on Software Engineering, pp. 1\u201313 (2024)","DOI":"10.1145\/3597503.3639226"},{"key":"16_CR31","unstructured":"Poznyakoff, S.: GNU cflow (2005). https:\/\/www.gnu.org\/software\/cflow\/"},{"key":"16_CR32","doi-asserted-by":"publisher","unstructured":"Qin, B., Chen, Y., Yu, Z., Song, L., Zhang, Y.: Understanding memory and thread safety practices and issues in real-world rust programs. In: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2020, pp. 763\u2013779. Association for Computing Machinery, New York (2020). https:\/\/doi.org\/10.1145\/3385412.3386036","DOI":"10.1145\/3385412.3386036"},{"issue":"2","key":"16_CR33","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1007\/s10664-023-10437-1","volume":"29","author":"M Robati Shirzad","year":"2024","unstructured":"Robati Shirzad, M., Lam, P.: A study of common bug fix patterns in rust. Empir. Softw. Eng. 29(2), 44 (2024)","journal-title":"Empir. Softw. Eng."},{"key":"16_CR34","unstructured":"Seward, J.: bzip2 (2023). https:\/\/sourceware.org\/bzip2\/. Accessed 04 June 2024"},{"key":"16_CR35","doi-asserted-by":"publisher","unstructured":"Takashima, Y., Martins, R., Jia, L., P\u0103s\u0103reanu, C.S.: SyRust: automatic testing of rust libraries with semantic-aware program synthesis. In: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2021, pp. 899\u2013913. Association for Computing Machinery, New York (2021). https:\/\/doi.org\/10.1145\/3453483.3454084","DOI":"10.1145\/3453483.3454084"},{"key":"16_CR36","unstructured":"TaKO8Ki: Awesome alternatives in rust (2024). https:\/\/github.com\/TaKO8Ki\/awesome-alternatives-in-rust. A curated list of replacements for existing software written in Rust"},{"issue":"2","key":"16_CR37","doi-asserted-by":"publisher","first-page":"146","DOI":"10.1137\/0201010","volume":"1","author":"R Tarjan","year":"1972","unstructured":"Tarjan, R.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146\u2013160 (1972)","journal-title":"SIAM J. Comput."},{"key":"16_CR38","doi-asserted-by":"crossref","unstructured":"Wenzhang\u00a0Yang, L.S.: Rust-lancet: automated ownership-rule-violation fixing with behavior preservation. In: Proceedings of the International Conference on Software Engineering (ICSE) (2024)","DOI":"10.1145\/3597503.3639103"},{"key":"16_CR39","doi-asserted-by":"crossref","unstructured":"White, J., Other, A.: ChatGPT prompt patterns for improving code quality, refactoring, requirements elicitation, and software design. arXiv preprint arXiv:2303.07839 (2023)","DOI":"10.1007\/978-3-031-55642-5_4"},{"key":"16_CR40","unstructured":"Wikipedia: Cyclomatic complexity (2024). https:\/\/en.wikipedia.org\/wiki\/Cyclomatic_complexity"},{"key":"16_CR41","unstructured":"Wikipedia: Redox (operating system) (2024). https:\/\/en.wikipedia.org\/wiki\/Redox_(operating_system)"},{"key":"16_CR42","unstructured":"Wikipedia: Rust for Linux (2024). https:\/\/en.wikipedia.org\/wiki\/Rust_for_Linux"},{"key":"16_CR43","unstructured":"Wikipedia: Type punning (2024). https:\/\/en.wikipedia.org\/wiki\/Type_punning#C_and_C++"},{"key":"16_CR44","doi-asserted-by":"crossref","unstructured":"Zheng, X., Wan, Z.: A closer look at the security risks in the rust ecosystem. ACM Trans. Softw. Eng. Methodol. (TOSEM) (2024)","DOI":"10.1145\/3624738"},{"key":"16_CR45","unstructured":"Yang, Z., et al.: Exploring and unleashing the power of large language models in automated code translation. arXiv preprint arXiv:2404.14646 (2024)"},{"key":"16_CR46","doi-asserted-by":"crossref","unstructured":"Ying\u00a0Zhang, P.L.: Broadly enabling Klee to effortlessly find unrecoverable errors in rust. In: Proceedings of the International Conference on Software Engineering (ICSE) (2024)","DOI":"10.1145\/3639477.3639714"},{"key":"16_CR47","doi-asserted-by":"crossref","unstructured":"Yuxia\u00a0Zhang, M.Q.: How are paid and volunteer open source developers different? A study of the rust project. In: Proceedings of the International Conference on Software Engineering (ICSE) (2024)","DOI":"10.1145\/3597503.3639197"},{"key":"16_CR48","doi-asserted-by":"crossref","unstructured":"Zhang, H., David, C., Wang, M., Paulsen, B., Kroening, D.: Scalable, validated code translation of entire projects using large language models. arXiv preprint arXiv:2412.08035 (2024)","DOI":"10.1145\/3729315"},{"key":"16_CR49","unstructured":"Zhang, H., David, C., Yu, Y., Wang, M.: Ownership guided C to Rust translation. arXiv preprint arXiv:2303.10515 (2023)"},{"key":"16_CR50","doi-asserted-by":"crossref","unstructured":"Xu, Z., Wu, B.: RPG: rust library fuzzing with pool-based fuzz target generation and generic support. In: Proceedings of the International Conference on Software Engineering (ICSE) (2024)","DOI":"10.1145\/3597503.3639102"}],"container-title":["Lecture Notes in Computer Science","Engineering of Complex Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-032-00828-2_16","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T04:04:38Z","timestamp":1779768278000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-032-00828-2_16"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,10,17]]},"ISBN":["9783032008275","9783032008282"],"references-count":50,"URL":"https:\/\/doi.org\/10.1007\/978-3-032-00828-2_16","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,10,17]]},"assertion":[{"value":"17 October 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"ICECCS","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Engineering of Complex Computer Systems","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Hangzhou","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"China","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2025","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2 July 2025","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"4 July 2025","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"29","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"iceccs2025","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/iceccs2025-hangzhou.github.io\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}