ABSTRACT
Sketch-based synthesis, epitomized by the Sketch tool, lets developers synthesize software starting from a partial program, also called a sketch or template. This paper presents JSketch, a tool that brings sketch-based synthesis to Java. JSketch's input is a partial Java program that may include holes, which are unknown constants, expression generators, which range over sets of expressions, and class generators, which are partial classes. JSketch then translates the synthesis problem into a Sketch problem; this translation is complex because Sketch is not object-oriented. Finally, JSketch synthesizes an executable Java program by interpreting the output of Sketch.
- J. Jeon, X. Qiu, J. S. Foster, and A. Solar-Lezama. JSketch: Sketching for Java. CoRR, abs/1507.03577, 2015.Google Scholar
- J. Jeon, X. Qiu, J. S. Foster, and A. Solar-Lezama. Synthesizing Framework Models for Symbolic Execution. Unpublished manuscript, 2015.Google Scholar
- J. Jeon, X. Qiu, A. Solar-Lezama, and J. S. Foster. Adaptive Concretization for Parallel Program Synthesis. In CAV, July 2015.Google Scholar
- R. Singh, S. Gulwani, and A. Solar-Lezama. Automated Feedback Generation for Introductory Programming Assignments. In PLDI, pages 15–26, 2013. Google ScholarDigital Library
- A. Solar-Lezama. Program sketching. Int. J. STTT, 15(5-6):475–495, 2013.Google ScholarDigital Library
- A. Solar-Lezama. The Sketch Programmers Manual, 2015. Version 1.6.7.Google Scholar
- A. Solar-Lezama, C. G. Jones, and R. Bodik. Sketching concurrent data structures. In PLDI, pages 136–148, 2008. Google ScholarDigital Library
- A. Solar-Lezama, L. Tancau, R. Bodik, S. Seshia, and V. Saraswat. Combinatorial sketching for finite programs. In ASPLOS, pages 404–415, 2006. Google ScholarDigital Library
- S. Srivastava, S. Gulwani, S. Chaudhuri, and J. S. Foster. Path-Based Inductive Synthesis for Program Inversion. In PLDI, pages 492–503, June 2011. Google ScholarDigital Library
- S. Srivastava, S. Gulwani, and J. S. Foster. From program verification to program synthesis. In POPL, pages 313–326, 2010. Google ScholarDigital Library
- Introduction Overview Implementation Experience with JSketch Acknowledgments ReferencesGoogle Scholar
Recommendations
Evaluating the Java Native Interface JNI: Leveraging Existing Native Code, Libraries and Threads to a Running Java Virtual Machine
This article aims to explore JNI features and to discover fundamental operations of the Java programming language, such as arrays, objects, classes, threads and exception handling, and to illustrate these by using various algorithms and code samples. ...
Program Sketching by Automatically Generating Mocks from Tests
Computer Aided VerificationAbstractSketch is a popular program synthesis tool that solves for unknowns in a sketch or partial program. However, while Sketch is powerful, it does not directly support modular synthesis of dependencies, potentially limiting scalability. In this paper, ...
Evaluating the Java Native Interface JNI: Data Types and Strings
This article describes how the java native interface JNI is a powerful feature of the java platform that started to draw attention in the latter years as an efficient programming framework for building and delivering innovative technological ...
Comments