{"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/neural-sketch-learning-for-conditional","title":"Neural Sketch Learning for Conditional Program Generation","arxiv_id":"1703.05698","date":"2017-03-16","proceeding":"ICLR 2018 1","authors":["Vijayaraghavan Murali","Letao Qi","Swarat Chaudhuri","Chris Jermaine"],"abstract":"We study the problem of generating source code in a strongly typed, Java-like\nprogramming language, given a label (for example a set of API calls or types)\ncarrying a small amount of information about the code that is desired. The\ngenerated programs are expected to respect a \"realistic\" relationship between\nprograms and labels, as exemplified by a corpus of labeled programs available\nduring training.\n  Two challenges in such conditional program generation are that the generated\nprograms must satisfy a rich set of syntactic and semantic constraints, and\nthat source code contains many low-level features that impede learning. We\naddress these problems by training a neural generator not on code but on\nprogram sketches, or models of program syntax that abstract out names and\noperations that do not generalize across programs. During generation, we infer\na posterior distribution over sketches, then concretize samples from this\ndistribution into type-safe programs using combinatorial techniques. We\nimplement our ideas in a system for generating API-heavy Java code, and show\nthat it can often predict the entire body of a method given just a few API\ncalls or data types that appear in the method.","url_abs":"http://arxiv.org/abs/1703.05698v5","url_pdf":"http://arxiv.org/pdf/1703.05698v5.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":"neural-sketch-learning-for-conditional","repo_url":"https://github.com/capergroup/bayou","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1703.05698","atlas_url":"https://app.syntology.ai/?focus=1703.05698","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1703.05698"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/capergroup/bayou","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":3},"by_repo_kind":{"official":{"samples":3,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"1cdab4f1c5f90faf","entry":"dump_config","repo":"capergroup/bayou","repo_kind":"official","path":"src/main/python/bayou/experiments/embed/utils.py","file_url":"https://github.com/capergroup/bayou/blob/HEAD/src/main/python/bayou/experiments/embed/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1cdab4f1c5f90faf"}},{"code_sha256_prefix":"720de0b169dc244f","entry":"get_api","repo":"capergroup/bayou","repo_kind":"official","path":"src/main/python/bayou/experiments/2dviz/plot.py","file_url":"https://github.com/capergroup/bayou/blob/HEAD/src/main/python/bayou/experiments/2dviz/plot.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"720de0b169dc244f"}},{"code_sha256_prefix":"a824d2b8d03e40b9","entry":"read_config","repo":"capergroup/bayou","repo_kind":"official","path":"src/main/python/bayou/experiments/embed/utils.py","file_url":"https://github.com/capergroup/bayou/blob/HEAD/src/main/python/bayou/experiments/embed/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a824d2b8d03e40b9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}