Discovering relational specifications
Discovering relational specifications
复制标题
DOI:
10.1145/3106237.3106279
复制
发表时间:
2017-08
期刊:
影响因子:
--
通讯作者:
Calvin Smith;G. Ferns;Aws Albarghouthi
中科院分区:
文献类型:
--
作者:
Calvin Smith;G. Ferns;Aws Albarghouthi
Formal specifications of library functions play a critical role in a number of program analysis and development tasks. We present Bach, a technique for discovering likely relational specifications from data describing input-output behavior of a set of functions comprising a library or a program. Relational specifications correlate different executions of different functions; for instance, commutativity, transitivity, equivalence of two functions, etc. Bach combines novel insights from program synthesis and databases to discover a rich array of specifications. We apply Bach to learn specifications from data generated for a number of standard libraries. Our experimental evaluation demonstrates Bach's ability to learn useful and deep specifications in a small amount of time.