The Big Picture Related Work Practical Considerations The - - PowerPoint PPT Presentation
The Big Picture Related Work Practical Considerations The - - PowerPoint PPT Presentation
The Big Picture Related Work Practical Considerations The Boundaries of Our Methods Code Synthesis for (int i = 0; i < 10; i++){ Token en Console.WriteLine(i); } ForStatement ions ns Expression Expression Body Initialization
The Big Picture Practical Considerations Related Work The Boundaries of Our Methods
Code Synthesis
for (int i = 0; i < 10; i++){ Console.WriteLine(i); }
ForStatement Initialization Expression Expression Body Single Variable Declaration Type int Name Initializer Numeric Literal i Infix Expression Left Operand Right Operand Operator < Numeric Literal 10 iSyntax tax
Cod
- de
e Rep epresentat esentatio ions ns
Token en Graph ph
i=0 i<10 Console.WriteLine(i) i++ ENDHindle et al. “On the naturalness of software” ICSE 2012
Image from Allamanis & Sutton, MSR 2013
Pr Program ramming ming La Languag uage e Mo Model els
Su Suggest stio ions ns
- 1. job (30%)
- 2. task (20%)
- 3. tsk (15%)
ForkJoinTask<?> job; if (task instanceof ForkJoinTask<?>) // avoid re-wrap job = (ForkJoinTask<?>) task; else job = new ForkJoinTask.AdaptedRunnableAction(task); externalPush(job);
Allamanis et al. FSE 2014, 2015 and other recent work
http://groups.inf.ed.ac.uk/cup/naturalize
http://groups.inf.ed.ac.uk/cup/naturalize
Raychev et al. 2014 Nguyen et al. 2013,2015 Oda et al. ASE 2015
Balog et al. “DeepCoder: Learning to Write Programs”, 2016
Balog et al. “DeepCoder: Learning to Write Programs”, 2016
Raychev et al. “Predicting Program Properties from Big Code”, 2015
Allamanis et al. “Learning to Represent Programs with Graphs”, 2017
https://github.com/dotnet/roslyn/pull/23437
Metrics Low-Resource Environments Confidentiality Train/Use Costs Explainability Train-Use & Feedback Loop
The Frontiers of Our Methods
Allamanis et al, “ A Convolutional Attention Network for Extreme Summarization
- f Source Code”, ICML 2016
Predictions
- get, UNK (9%)
- get, height (8.7%)
- get, width (6.5%)
- get (5.7%)
- get,size (4.2%)
Gaunt et al, “T erpreT: A Probabilistic Programming Language for Program Induction”, 2016
SemVecs
Syntax-driven but small changes in syntax can lead in large changes in semantics
Zaremba et al. 2014 Allamanis et al. 2017
http://groups.inf.ed.ac.uk/cup/semvec/
t-SNE Visualization SimpPoly8
http://groups.inf.ed.ac.uk/cup/semvec/
t-SNE Visualization Bool10-UnseenTest
http://groups.inf.ed.ac.uk/cup/semvec/
t-SNE Visualization Bool10-UnseenTest