{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/rectifier-code-translation-with-corrector-via","title":"Rectifier: Code Translation with Corrector via LLMs","arxiv_id":"2407.07472","date":"2024-07-10","proceeding":null,"authors":["Xin Yin","Chao Ni","Tien N. Nguyen","Shaohua Wang","Xiaohu Yang"],"abstract":"Software migration is garnering increasing attention with the evolution of software and society. Early studies mainly relied on handcrafted translation rules to translate between two languages, the translation process is error-prone and time-consuming. In recent years, researchers have begun to explore the use of pre-trained large language models (LLMs) in code translation. However, code translation is a complex task that LLMs would generate mistakes during code translation, they all produce certain types of errors when performing code translation tasks, which include (1) compilation error, (2) runtime error, (3) functional error, and (4) non-terminating execution. We found that the root causes of these errors are very similar (e.g. failure to import packages, errors in loop boundaries, operator errors, and more). In this paper, we propose a general corrector, namely Rectifier, which is a micro and universal model for repairing translation errors. It learns from errors generated by existing LLMs and can be widely applied to correct errors generated by any LLM. The experimental results on translation tasks between C++, Java, and Python show that our model has effective repair ability, and cross experiments also demonstrate the robustness of our method.","url_abs":"https://arxiv.org/abs/2407.07472v1","url_pdf":"https://arxiv.org/pdf/2407.07472v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"rectifier-code-translation-with-corrector-via","repo_url":"https://github.com/vinci-grape/rectifier","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"code-translation","task_name":"Code Translation"},{"task_slug":"translation","task_name":"Translation"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2407.07472","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.07472"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vinci-grape/rectifier","reach":{"status":"ok"}}],"summary":{"ran":4},"by_repo_kind":{"official":{"samples":4,"ran":4,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":4,"samples":[{"code_sha256_prefix":"0407ca0effc7e92f","entry":"is_prime","repo":"vinci-grape/rectifier","repo_kind":"official","path":"output/ChatGPT/codenet/C++/Python/s049366196.py","file_url":"https://github.com/vinci-grape/rectifier/blob/HEAD/output/ChatGPT/codenet/C%2B%2B/Python/s049366196.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0407ca0effc7e92f"}},{"code_sha256_prefix":"1b3c0bead6a3cc0f","entry":"list_files","repo":"vinci-grape/rectifier","repo_kind":"official","path":"src/translation/clean_generations.py","file_url":"https://github.com/vinci-grape/rectifier/blob/HEAD/src/translation/clean_generations.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1b3c0bead6a3cc0f"}},{"code_sha256_prefix":"f6d4133814a64d93","entry":"operator_template","repo":"vinci-grape/rectifier","repo_kind":"official","path":"src/translation/clean_generations.py","file_url":"https://github.com/vinci-grape/rectifier/blob/HEAD/src/translation/clean_generations.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f6d4133814a64d93"}},{"code_sha256_prefix":"b8a456b0770f75d1","entry":"python_to_java_conditional","repo":"vinci-grape/rectifier","repo_kind":"official","path":"src/translation/clean_generations.py","file_url":"https://github.com/vinci-grape/rectifier/blob/HEAD/src/translation/clean_generations.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b8a456b0770f75d1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}