Program synthesis with algebraic library specifications
Program synthesis with algebraic library specifications
复制标题
使用代数库规范进行程序综合
DOI:
10.1145/3360558
复制
发表时间:
2019
影响因子:
--
通讯作者:
Solar-Lezama, Armando
中科院分区:
文献类型:
--
作者:
Mariano, Benjamin;Reese, Josh;Xu, Siyuan;Nguyen, ThanhVu;Qiu, Xiaokang;Foster, Jeffrey S.;Solar-Lezama, Armando
A key challenge in program synthesis is synthesizing programs that use libraries, which most real-world software does. The current state of the art is to model libraries with mock library implementations that perform the same function in a simpler way. However, mocks may still be large and complex, and must include many implementation details, both of which could limit synthesis performance. To address this problem, we introduce JLibSketch, a Java program synthesis tool that allows library behavior to be described with algebraic specifications, which are rewrite rules for sequences of method calls, e.g., encryption followed by decryption (with the same key) is the identity. JLibSketch implements rewrite rules by compiling JLibSketch problems into problems for the Sketch program synthesis tool. More specifically, after compilation, library calls are represented by abstract data types (ADTs), and rewrite rules manipulate those ADTs. We formalize compilation and prove it sound and complete if the rewrite rules are ordered and non-unifiable. We evaluated JLibSketch by using it to synthesize nine programs that use libraries from three domains: data structures, cryptography, and file systems. We found that algebraic specifications are, on average, about half the size of mocks. We also found that algebraic specifications perform better than mocks on seven of the nine programs, sometimes significantly so, and perform equally well on the last two programs. Thus, we believe that JLibSketch takes an important step toward synthesis of programs that use libraries.
登录
查看更多内容
DOI:
10.1007/978-3-319-40229-1_10
发表时间:
2016
期刊:
The Journal of infectious diseases
影响因子:
--
作者:
Andrew Reynolds;J. Blanchette;Simon Cruanes;C. Tinelli
通讯作者:
C. Tinelli
DOI:
--
发表时间:
1970
期刊:
影响因子:
--
作者:
D. Knuth;P. Bendix
通讯作者:
P. Bendix
DOI:
10.1007/978-3-319-21668-3_22
发表时间:
2015
期刊:
Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
作者:
Jinseong Jeon;Xiaokang Qiu;Armando Solar;J. Foster
通讯作者:
J. Foster
影响因子:
--
作者:
Xinyu Wang;Işıl Dillig;Rishabh Singh
通讯作者:
Rishabh Singh
DOI:
--
发表时间:
2019
期刊:
and Abstract Interpretation
影响因子:
--
作者:
Smith, Calvin;Albarghouthi, Aws
通讯作者:
Albarghouthi, Aws