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 条
  • [1] EDSKETCH: Execution-Driven Sketching for Java']Java
    Hua, Jinru
    Khurshid, Sarfraz
    SPIN'17: PROCEEDINGS OF THE 24TH ACM SIGSOFT INTERNATIONAL SPIN SYMPOSIUM ON MODEL CHECKING OF SOFTWARE, 2017, : 162 - 171
  • [2] EDSKETCH: execution-driven sketching for Java']Java
    Hua, Jinru
    Zhang, Yushan
    Zhang, Yuqun
    Khurshid, Sarfraz
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2019, 21 (03) : 249 - 265
  • [3] Execution-driven simulation of network storage systems
    Wang, YJ
    Kaeli, D
    IEEE COMPUTER SOCIETY'S 12TH ANNUAL INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS, AND SIMULATION OF COMPUTER AND TELECOMMUNICATIONS SYSTEMS - PROCEEDINGS, 2004, : 604 - 611
  • [4] SPAM: A multiprocessor execution-driven simulation kernel
    Gefflaut, Alain
    Joubert, Philippe
    International Journal in Computer Simulation, 6 (01):
  • [5] Execution-driven simulators for parallel systems design
    Sivasubramaniam, K
    PROCEEDINGS OF THE 1997 WINTER SIMULATION CONFERENCE, 1997, : 1021 - 1028
  • [6] Execution-driven simulation of IP router architectures
    Bhuyan, L
    Wang, H
    IEEE INTERNATIONAL SYMPOSIUM ON NETWORK COMPUTING AND APPLICATIONS, PROCEEDINGS, 2001, : 145 - 155
  • [7] Symbolic Execution-Driven Extraction of the Parallel Execution Plans of Spark Applications
    Baresi, Luciano
    Denaro, Giovanni
    Quattrocchi, Giovanni
    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, : 246 - 256
  • [8] Execution-driven simulation of error recovery techniques for multicomputers
    Frazier, TM
    Tamir, Y
    30TH ANNUAL SIMULATION SYMPOSIUM, PROCEEDINGS, 1997, : 4 - 13
  • [9] A generic framework for anytime execution-driven planning in robotics
    Teichteil-Koenigsbuch, Florent
    Lesire, Charles
    Infantes, Guillaume
    2011 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA), 2011,
  • [10] Strategies for scalable symbolic execution-driven test generation for programs
    KRISHNAMOORTHY Saparya
    HSIAO Michael S.
    LINGAPPAN Loganathan
    ScienceChina(InformationSciences), 2011, 54 (09) : 1797 - 1812