Automatically constructing a program based on given specifications has been studied for decades. Despite the advances in the field of Program Synthesis, the current approaches still synthesize a block of code snippet and leave the task of reusing it in an existing code base to program developers. Due to its program-wide effects, synthesizing an architectural tactic and reusing it in a program is even more challenging. Architectural tactics need to be synthesized based on the context of different locations of the program, broken down to smaller pieces, and added to corresponding locations in the code. Moreover, each piece needs to establish correct data- and control-dependencies to its surrounding environment as well as to the other synthesized pieces. This is an error-prone and challenging task, especially for novice program developers. In this paper, we introduce a novel program synthesis approach that synthesizes architectural tactics and adds them to an existing code base.
翻译:以特定规格为基础自动构建程序已经研究了几十年。 尽管在程序合成领域取得了进步, 目前的方法仍然将一组代码片段合成, 并将重用于现有代码库的任务留给程序开发者。 由于它在整个程序范围内的效果, 合成一个建筑策略并将其重新用于一个程序更具挑战性。 建筑策略需要根据程序不同位置的背景加以合成, 细分为小块, 并添加到代码中的相应位置 。 此外, 每块需要建立正确的数据和控制依赖性, 以适应周围环境以及其他合成的片段 。 这是一个容易出错且具有挑战性的任务, 特别是对于新程序开发者来说。 在本文中, 我们引入一个新的方案合成方法, 综合建筑策略, 并将其添加到一个现有的代码基中 。