当前位置: X-MOL 学术Acta Inform. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Programming by predicates: a formal model for interactive synthesis
Acta Informatica ( IF 0.4 ) Pub Date : 2019-08-30 , DOI: 10.1007/s00236-019-00340-y
Hila Peleg , Shachar Itzhaky , Sharon Shoham , Eran Yahav

Program synthesis is the problem of computing from a specification a program that implements it. New and popular variations on the synthesis problem accept specifications in formats that are easier for the human synthesis user to provide: input–output example pairs, type information, and partial logical specifications. These are all partial specification formats, encoding only a fraction of the expected behavior of the program, leaving many matching programs. This transition into partial specification also changes the mode of work for the user, who now provides additional specifications until they are happy with the synthesis result. Therefore, synthesis becomes an iterative, interactive process. We present a formal model for interactive synthesis, parameterized by an abstract domain of predicates on programs. The abstract domain is used to describe both the iterative refinement of the specifications and reduction of the candidate program space. We motivate the need for a general feedback model via predicates by showing that examples, the most frequent specification tool, are an insufficient tool to differentiate between programs, even when used as a full specification. We use the formal model to describe the behavior of several real-world synthesizers. Additionally, we present two conditions for termination of a synthesis session, one hinging only on the properties of the available partial specifications, and the other also on the behavior of the user. Finally, we show conditions for realizability of the user’s intent, and show the limitations of backtracking when it is apparent a session will fail.

中文翻译:

谓词编程:交互式综合的正式模型

程序综合是根据规范计算实现它的程序的问题。综合问题的新的和流行的变体接受人类综合用户更容易提供的格式的规范:输入-输出示例对、类型信息和部分逻辑规范。这些都是部分规范格式,只编码了程序预期行为的一小部分,留下了许多匹配的程序。这种向部分规范的转变也改变了用户的工作模式,他们现在提供额外的规范,直到他们对综合结果感到满意为止。因此,综合成为一个迭代的、交互的过程。我们提出了一个交互式综合的正式模型,由程序谓词的抽象域参数化。抽象域用于描述规范的迭代细化和候选程序空间的减少。我们通过展示示例(最常用的规范工具)不足以区分程序,即使用作完整的规范,也激发了对通过谓词的通用反馈模型的需求。我们使用正式模型来描述几个现实世界合成器的行为。此外,我们提出了终止综合会话的两个条件,一个仅取决于可用部分规范的属性,另一个还取决于用户的行为。最后,我们展示了用户意图的可实现性条件,并展示了当会话明显失败时回溯的局限性。
更新日期:2019-08-30
down
wechat
bug