TY - GEN
T1 - Synthesizing imperative programs from examples guided by static analysis
AU - So, Sunbeom
AU - Oh, Hakjoo
PY - 2017
Y1 - 2017
N2 - We present a novel algorithm for efficiently synthesizing imperative programs from examples. Given a set of input-output examples and a partial program, our algorithm generates a complete program that is consistent with every example. Our algorithm is based on enumerative synthesis, which explores all candidate programs in increasing size until it finds a solution. This algorithm, however, is too slow to be used in practice. Our key idea to accelerate the speed is to perform static analysis alongside the enumerative search, in order to “statically” identify and safely prune out partial programs that eventually fail to be a solution. We have implemented our algorithm in a tool, SIMPL, and evaluated it on 30 introductory programming problems gathered from online forums. The results show that our static analysis approach improves the speed of enumerative synthesis by 25x on average.
AB - We present a novel algorithm for efficiently synthesizing imperative programs from examples. Given a set of input-output examples and a partial program, our algorithm generates a complete program that is consistent with every example. Our algorithm is based on enumerative synthesis, which explores all candidate programs in increasing size until it finds a solution. This algorithm, however, is too slow to be used in practice. Our key idea to accelerate the speed is to perform static analysis alongside the enumerative search, in order to “statically” identify and safely prune out partial programs that eventually fail to be a solution. We have implemented our algorithm in a tool, SIMPL, and evaluated it on 30 introductory programming problems gathered from online forums. The results show that our static analysis approach improves the speed of enumerative synthesis by 25x on average.
UR - http://www.scopus.com/inward/record.url?scp=85028685445&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85028685445&partnerID=8YFLogxK
U2 - 10.1007/978-3-319-66706-5_18
DO - 10.1007/978-3-319-66706-5_18
M3 - Conference contribution
AN - SCOPUS:85028685445
SN - 9783319667058
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 364
EP - 381
BT - Static Analysis - 24th International Symposium, SAS 2017, Proceedings
A2 - Ranzato, Francesco
PB - Springer Verlag
T2 - 24th International Symposium on Static Analysis, SAS 2017
Y2 - 30 August 2017 through 1 September 2017
ER -