This paper describes a way to improve the scalability of program synthesis by exploiting modularity: larger programs are synthesized from smaller programs. The key issue is to make each "larger-created-from-smaller" synthesis sub-problem be of a similar nature, so that the kind of synthesis sub-problem that needs to be solved--and the size of each search space--has roughly the same character at each level. This work holds promise for creating program-synthesis tools that have far greater capabilities than currently available tools, and opens new avenues for synthesis research: how synthesis tools should support modular system design, and how synthesis applications can best exploit such capabilities.
翻译:本文描述了一种通过利用模块化来提升程序综合可扩展性的方法:即从较小的程序综合出较大的程序。关键问题在于使每个"由小到大"的综合子问题具有相似的性质,从而使需要求解的综合子问题类型——以及每个搜索空间的规模——在每一层级上大致保持相同特征。这项工作有望创造出比现有工具能力强大得多的程序综合工具,并为综合研究开辟新的方向:综合工具应如何支持模块化系统设计,以及综合应用如何能最好地利用这些能力。