JSketch: Sketching for Java

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 includ...

Full description

Bibliographic Details
Main Authors: Jeon, Jinseong (Author), Foster, Jeffrey S. (Author), Solar Lezama, Armando (Contributor), Qiu, Xiaokang (Contributor)
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory (Contributor), Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: Association for Computing Machinery (ACM), 2017-12-01T20:47:00Z.
Subjects:
Online Access:Get fulltext
LEADER 01971 am a22002893u 4500
001 112345
042 |a dc 
100 1 0 |a Jeon, Jinseong  |e author 
100 1 0 |a Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory  |e contributor 
100 1 0 |a Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science  |e contributor 
100 1 0 |a Solar Lezama, Armando  |e contributor 
100 1 0 |a Qiu, Xiaokang  |e contributor 
700 1 0 |a Foster, Jeffrey S.  |e author 
700 1 0 |a Solar Lezama, Armando  |e author 
700 1 0 |a Qiu, Xiaokang  |e author 
245 0 0 |a JSketch: Sketching for Java 
260 |b Association for Computing Machinery (ACM),   |c 2017-12-01T20:47:00Z. 
856 |z Get fulltext  |u http://hdl.handle.net/1721.1/112345 
520 |a 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. 
520 |a National Science Foundation (U.S.) (CCF-1139021) 
520 |a National Science Foundation (U.S.) (CCF- 1139056) 
520 |a National Science Foundation (U.S.) (CCF-1161775) 
520 |a University of Maryland (College Park, Md.). Institute for Advanced Computer Studies 
520 |a Laboratory for Telecommunication Sciences. 
546 |a en_US 
655 7 |a Article 
773 |t Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2015