EdSketch: execution-driven sketching for Java

被引:0
|
作者
Jinru Hua
Yushan Zhang
Yuqun Zhang
Sarfraz Khurshid
机构
[1] The University of Texas at Austin,
[2] Southern University of Science and Technology,undefined
关键词
Program sketching; Execution-driven synthesis; Backtracking search;
D O I
暂无
中图分类号
学科分类号
摘要
Sketching is a synthesis approach that allows users to provide high-level insights into a synthesis problem and let synthesis tools complete low-level details. Users write sketches—partial programs that have “holes” and provide test assertions as the correctness criteria. The sketching techniques fill the holes with code fragments such that the complete program satisfies all test assertions. Traditional techniques translate the sketching problem to propositional satisfiability formulas and leverage SAT solvers to generate programs with the desired functionality. While effective for a range of small well-defined domains, such translation-based approaches have a key limitation when applying to real applications: They require either translating all relevant libraries that are invoked directly or indirectly by the given sketch or creating models of those libraries, which requires much manual effort. This paper introduces execution-driven sketching, a novel approach for synthesizing Java programs with on-demand candidate generation. The key novelty of our work is to leverage runtime behavior to prune a large amount of search space. EdSketch explores the actual program behaviors in the presence of libraries and sketches small parts of real-world applications, which may use complex constructs of modern languages, such as reflection, native calls and File I/O. We further leverage a set of pruning strategies based on Java syntax to expedite the synthesis process. EdSketch embodies our approach in two forms: a stateful search based on the Java PathFinder model checker; and a stateless search based on re-execution inspired by the VeriSoft model checker. Experimental results show that EdSketch can complete some sketches that contain complex constructs in the presence of libraries, recursive procedures and advanced features like reflection. Without translating to SAT, EdSketch ’s performance compares well with the SAT-based Sketch system for a range of small but complex data structure subjects.
引用
收藏
页码:249 / 265
页数:16
相关论文
共 50 条
  • [21] An execution-driven real time simulator for embedded control systems:: Techniques, application and evaluation
    Müller-Schloer, C
    Spitzkowsky, J
    MODELLING AND SIMULATION 1996, 1996, : 103 - 107
  • [22] An Algorithm - Architecture Co-Designed System for Dynamic Execution-Driven Pre-Silicon Verification
    Mahapatra, Ipsita Biswas
    Nandy, S. K.
    PROCEEDINGS OF THE 2018 8TH INTERNATIONAL SYMPOSIUM ON EMBEDDED COMPUTING AND SYSTEM DESIGN (ISED 2018), 2018, : 85 - 89
  • [23] JS']JSKETCH: Sketching for Java']Java
    Jeon, Jinseong
    Qiu, Xiaokang
    Foster, Jeffrey S.
    Solar-Lezama, Armando
    2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS, 2015, : 934 - 937
  • [24] Jsketch: Sketching for Java
    University of Maryland, College Park, United States
    不详
    Jt. Meet. Eur. Softw. Eng. Conf. ACM SIGSOFT Symp. Found. Softw. Eng., ESEC/FSE - Proc., (934-937):
  • [25] PS-SIM: An Execution-Driven Performance Simulation Technology Based on Process-Switch
    Guo, Xiaowei
    Lin, Yufei
    Xu, Xinhai
    Zhang, Xin
    ADVANCES IN COMPUTER SCIENCE, ENVIRONMENT, ECOINFORMATICS, AND EDUCATION, PT II, 2011, 215 : 15 - 22
  • [26] SMP-SIM: an SMP-based Discrete-event Execution-driven Performance Simulator
    Lin, Yufei
    Xu, Xinhai
    Tang, Yuhua
    Zhang, Xin
    Guo, Xiaowei
    COMPUTER SCIENCE AND INFORMATION SYSTEMS, 2012, 9 (04) : 1361 - 1383
  • [27] A Java']Java Execution Simulator
    Robbins, Steven
    SIGCSE 2007: PROCEEDINGS OF THE THIRTY-EIGHTH SIGCSE TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2007, : 536 - 540
  • [28] Reverse execution of Java']Java bytecode
    Cook, JJ
    COMPUTER JOURNAL, 2002, 45 (06): : 608 - 619
  • [29] Visualizing the execution of Java']Java programs
    De Pauw, W
    Jensen, E
    Mitchell, N
    Sevitsky, G
    Vlissides, J
    Yang, JH
    SOFTWARE VISUALIZATION, 2002, 2269 : 151 - 162
  • [30] PRES: Probabilistic Replay with Execution Sketching on Multiprocessors
    Park, Soyeon
    Zhou, Yuanyuan
    Xiong, Weiwei
    Yin, Zuoning
    Kaushik, Rini
    Lee, Kyu H.
    Lu, Shan
    SOSP'09: PROCEEDINGS OF THE TWENTY-SECOND ACM SIGOPS SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, 2009, : 177 - 191