Neural Program Generation Modulo Static Analysis

被引:0
|
作者
Mukherjee, Rohan [1 ]
Wen, Yeming [2 ]
Chaudhari, Dipak [2 ]
Reps, Thomas W. [3 ]
Chaudhuri, Swarat [2 ]
Jermaine, Chris [1 ]
机构
[1] Rice Univ, Houston, TX 77251 USA
[2] UT Austin, Austin, TX USA
[3] Univ Wisconsin, Madison, WI 53706 USA
关键词
D O I
暂无
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
State-of-the-art neural models of source code tend to be evaluated on the generation of individual expressions and lines of code, and commonly fail on long-horizon tasks such as the generation of entire method bodies. We propose to address this deficiency using weak supervision from a static program analyzer. Our neurosymbolic method allows a deep generative model to symbolically compute, using calls to a static-analysis tool, long-distance semantic relationships in the code that it has already generated. During training, the model observes these relationships and learns to generate programs conditioned on them. We apply our approach to the problem of generating entire Java methods given the remainder of the class that contains the method. Our experiments show that the approach substantially outperforms state-of-the-art transformers and a model that explicitly tries to learn program semantics on this task, both in terms of producing programs free of basic semantic errors and in terms of syntactically matching the ground truth.
引用
收藏
页数:13
相关论文
共 50 条
  • [41] Static Deep Neural Network Analysis for Robustness
    Pan, Rangeet
    ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 1238 - 1240
  • [42] Structural operational semantics as a basis for static program analysis
    LeMetayer, D
    Schmidt, D
    ACM COMPUTING SURVEYS, 1996, 28 (02) : 340 - 343
  • [43] Static program analysis for Java']Java Card applets
    Almaliotis, Vasilios
    Loizidis, Alexandros
    Katsaros, Panagiotis
    Louridas, Panagiotis
    Spinellis, Diomidis
    SMART CARD RESEARCH AND ADVANCED APPLICATIONS, PROCEEDINGS, 2008, 5189 : 17 - +
  • [44] Using static program analysis to aid intrusion detection
    Egele, Manuel
    Szydlowski, Martin
    Kirda, Engin
    Kruegel, Christopher
    DETECTION OF INTRUSIONS AND MALWARE & VULNERABILITY ASSESSMENT, PROCEEDINGS, 2006, 4064 : 17 - 36
  • [45] Quantitative Program Sketching using Lifted Static Analysis
    Dimovski, Aleksandar S.
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2022, 2022, 13241 : 102 - 122
  • [46] Automatic program assessment using static and dynamic analysis
    Arifi, Sara Mernissi
    Ouali, Ismail Nait Abdellah
    Zahi, Azeddine
    Benabbou, Rachid
    PROCEEDINGS OF 2015 THIRD IEEE WORLD CONFERENCE ON COMPLEX SYSTEMS (WCCS), 2015,
  • [47] Reducing parallel program simulation complexity by static analysis
    Aversa, R
    Di Martino, B
    Mazzocca, N
    Villano, U
    JOURNAL OF SUPERCOMPUTING, 2000, 17 (03): : 299 - 310
  • [48] A Brief Survey of Specification Inference in Static Program Analysis
    Chai, Chuansen
    Yan, Xuexiong
    Wang, Qingxian
    Liu, Shukai
    Sun, Yajing
    Yi, Shuai
    PROCEEDINGS OF THE 2ND INTERNATIONAL CONFERENCE ON ADVANCES IN MECHANICAL ENGINEERING AND INDUSTRIAL INFORMATICS (AMEII 2016), 2016, 73 : 783 - 787
  • [49] Computer Program for Static Analysis of a Shaft Line.
    Curami, Andrea
    Pizzigoni, Bruno
    Energia Elettrica, 1981, 58 (12): : 494 - 503
  • [50] Combined static and dynamic immutability analysis of java program
    Yu L.-Q.
    Wang L.-Z.
    Lei B.
    Zhao J.-H.
    Li X.-D.
    Jisuanji Xuebao/Chinese Journal of Computers, 2010, 33 (04): : 736 - 746