{"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/dynamic-neural-program-embedding-for-program","title":"Dynamic Neural Program Embedding for Program Repair","arxiv_id":"1711.07163","date":"2017-11-20","proceeding":null,"authors":["Ke Wang","Rishabh Singh","Zhendong Su"],"abstract":"Neural program embeddings have shown much promise recently for a variety of\nprogram analysis tasks, including program synthesis, program repair, fault\nlocalization, etc. However, most existing program embeddings are based on\nsyntactic features of programs, such as raw token sequences or abstract syntax\ntrees. Unlike images and text, a program has an unambiguous semantic meaning\nthat can be difficult to capture by only considering its syntax (i.e.\nsyntactically similar pro- grams can exhibit vastly different run-time\nbehavior), which makes syntax-based program embeddings fundamentally limited.\nThis paper proposes a novel semantic program embedding that is learned from\nprogram execution traces. Our key insight is that program states expressed as\nsequential tuples of live variable values not only captures program semantics\nmore precisely, but also offer a more natural fit for Recurrent Neural Networks\nto model. We evaluate different syntactic and semantic program embeddings on\npredicting the types of errors that students make in their submissions to an\nintroductory programming class and two exercises on the CodeHunt education\nplatform. Evaluation results show that our new semantic program embedding\nsignificantly outperforms the syntactic program embeddings based on token\nsequences and abstract syntax trees. In addition, we augment a search-based\nprogram repair system with the predictions obtained from our se- mantic\nembedding, and show that search efficiency is also significantly improved.","url_abs":"http://arxiv.org/abs/1711.07163v4","url_pdf":"http://arxiv.org/pdf/1711.07163v4.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":"dynamic-neural-program-embedding-for-program","repo_url":"https://github.com/keowang/dynamic-program-embedding","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"fault-localization","task_name":"Fault localization"},{"task_slug":"program-repair","task_name":"Program Repair"},{"task_slug":"program-synthesis","task_name":"Program Synthesis"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1711.07163","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}