{"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/a-general-path-based-representation-for","title":"A General Path-Based Representation for Predicting Program Properties","arxiv_id":"1803.09544","date":"2018-03-26","proceeding":null,"authors":["Uri Alon","Meital Zilberstein","Omer Levy","Eran Yahav"],"abstract":"Predicting program properties such as names or expression types has a wide\nrange of applications. It can ease the task of programming and increase\nprogrammer productivity. A major challenge when learning from programs is\n$\\textit{how to represent programs in a way that facilitates effective\nlearning}$.\n  We present a $\\textit{general path-based representation}$ for learning from\nprograms. Our representation is purely syntactic and extracted automatically.\nThe main idea is to represent a program using paths in its abstract syntax tree\n(AST). This allows a learning model to leverage the structured nature of code\nrather than treating it as a flat sequence of tokens.\n  We show that this representation is general and can: (i) cover different\nprediction tasks, (ii) drive different learning algorithms (for both generative\nand discriminative models), and (iii) work across different programming\nlanguages.\n  We evaluate our approach on the tasks of predicting variable names, method\nnames, and full types. We use our representation to drive both CRF-based and\nword2vec-based learning, for programs of four languages: JavaScript, Java,\nPython and C\\#. Our evaluation shows that our approach obtains better results\nthan task-specific handcrafted representations across different tasks and\nprogramming languages.","url_abs":"http://arxiv.org/abs/1803.09544v3","url_pdf":"http://arxiv.org/pdf/1803.09544v3.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":"a-general-path-based-representation-for","repo_url":"https://github.com/JetBrains-Research/astminer","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-general-path-based-representation-for","repo_url":"https://github.com/ijaketak/ast-path","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"a-general-path-based-representation-for","repo_url":"https://github.com/vovak/astminer","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1803.09544","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1803.09544"}},"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/JetBrains-Research/astminer","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ijaketak/ast-path","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vovak/astminer","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":1},"by_repo_kind":{"listed":{"samples":1,"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":"e83e544a20ab7b96","entry":"node_range","repo":"JetBrains-Research/astminer","repo_kind":"listed","path":"src/main/python/parse/javalang/aw_javalang/ast_generation.py","file_url":"https://github.com/JetBrains-Research/astminer/blob/HEAD/src/main/python/parse/javalang/aw_javalang/ast_generation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e83e544a20ab7b96"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}