2016
DOI: 10.1145/3022671.2984041
|View full text |Cite
|
Sign up to set email alerts
|

Probabilistic model for code with decision trees

Abstract: In this paper we introduce a new approach for learning precise and general probabilistic models of code based on decision tree learning. Our approach directly benefits an emerging class of statistical programming tools which leverage probabilistic models of code learned over large codebases (e.g., GitHub) to make predictions about new programs (e.g., code completion, repair, etc). The key idea is to phrase the problem of learning a probabilistic model of code as learning a decision tree in a domain s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

2
89
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
6
3
1

Relationship

0
10

Authors

Journals

citations
Cited by 98 publications
(91 citation statements)
references
References 28 publications
2
89
0
Order By: Relevance
“…Apart from that, various deep neural embeddings and models have been also applied to different program analysis or software engineering tasks such as HAGGIS for mining idioms from source code [8], Gemini for binary code similarity detection [43], Code Vectors for code analogies, bug fining and repair/suggestion [22], Dynamic Program Embeddings for classifying the types of errors in programs [41], DYPRO for recognizing loop invariants [39], Im-port2Vec for learning embeddings of software libraries [38], NeurSA for catching static bugs in code [42], and HOPPITY to detect and fix bugs in programs [18]. Researchers have also studied the language model for code completion [23,34,36], code suggestion [7], and code retrieval [25] task.…”
Section: Related Workmentioning
confidence: 99%
“…Apart from that, various deep neural embeddings and models have been also applied to different program analysis or software engineering tasks such as HAGGIS for mining idioms from source code [8], Gemini for binary code similarity detection [43], Code Vectors for code analogies, bug fining and repair/suggestion [22], Dynamic Program Embeddings for classifying the types of errors in programs [41], DYPRO for recognizing loop invariants [39], Im-port2Vec for learning embeddings of software libraries [38], NeurSA for catching static bugs in code [42], and HOPPITY to detect and fix bugs in programs [18]. Researchers have also studied the language model for code completion [23,34,36], code suggestion [7], and code retrieval [25] task.…”
Section: Related Workmentioning
confidence: 99%
“…[90][91][92][93][94][95][96][97][98][99][100][101][102] Paradigms of program synthesis. Paradigms [84,[103][104][105][106][107][108][109][110][111][112][113][114][115] Code completion and suggestion.…”
Section: [49]mentioning
confidence: 99%
“…There have been several recent successes in applying (supervised) machine learning to programming languages research. For example, machine learning has been used to infer program invariants [Padhi et al 2016;, improve program analysis [Liang et al 2011;Mangal et al 2015;Raghothaman et al 2018;Raychev et al 2015] and synthesis [Balog et al 2016;Feng et al 2018Kalyan et al 2018;Lee et al 2018;Raychev et al 2016b;Schkufza et al 2013Schkufza et al , 2014, build probabilistic models of code [Bielik et al 2016;Raychev et al 2016aRaychev et al , 2014, infer specifications [Bastani et al 2017[Bastani et al , 2018bBeckman and Nori 2011;Bielik et al 2017;Heule et al 2016;Kremenek et al 2006;Livshits et al 2009], test software [Clapp et al 2016;Godefroid et al 2017;Liblit et al 2005], and select lemmas for automated Proof. First, because transitions are deterministic, we have…”
Section: Related Workmentioning
confidence: 99%