Page 151 - 《软件学报》2021年第5期
P. 151

顾斌  等:程序智能合成技术研究进展                                                              1375




















                                           Fig.1    Four stages of sofeware development
                                                 图 1   软件研制的 4 个阶段
                                                                                                      [8]
                    从软件工程方法学的角度看,其处理对象是千姿百态的客观世界,因而其行为必然是大量知识密集型的 .
                 目前,各行各业积累了大量可复用的软件资产供人类学习及应用.人工智能技术善于解决知识的表示与使用问
                 题,而这正是知识密集型的软件工程活动需要依靠的技术.人工智能技术能够对知识进行智能化表示和管理,提
                 取软件系统中适应于变化的部分,并将其封装在规则集中,实现整个规则库与推理机完全分离.这样,从最基本
                 的非启发式规则入手,简化将要引入启发式规则和启发式推理机系统的建立过程.因此,人工智能的理论与技术
                 非常适用于软件智能开发,并有望取得突破.
                    程序合成方法与程序员根据需求规约和设计规约手工编写程序不同,它关注让计算机理解用户需要什么,
                 进而自动编程,从而在一定程度上取代程序员的工作,使程序员的主要工作重点不再是重复性的编码,而是设计
                                                                      [9]
                 模型结构和编写需求规约.程序合成由 Alonzo Church 于 1957 年提出 ,长期以来一直是计算机科学的核心问题
                 和挑战之一,并被认为是计算机科学的圣杯,其挑战主要体现在“需求规约的描述”、“程序搜索空间的刻画”、“搜
                 索技术的设计”     [2,7] 这 3 个方面.由于描述完整需求规约难度过大,传统程序合成方法发展缓慢,而人工智能技术
                 为程序合成技术的发展带来新的思路,各种需求规约描述方式不断涌现.近年来,程序智能合成技术得到了快速
                 发展.总体而言,现有的程序智能合成技术由 3 部分组成(如图 2 所示):需求规约的描述、合成模型、软件资产库.
                    •   软件资产库是实现程序合成的支撑,对源代码进行挖掘处理后,构建软件资产库.
                    •   合成模型为程序合成的核心,利用人工智能技术学习代码资源中隐含的特征和知识.
                    •   需求规约的描述为程序合成的基础和前提,描述能用于程序合成的需求规约的挑战主要有两方面:一
                        方面为如何权衡需求规约的完备性与复杂性,另一方面为如何处理自然语言具的二义性.需求规约包
                                                                                         [2]
                        括输入输出示例      [10−12] 、代码框架 [13] 、部分代码 [14−16] 、自然语言 [17−20] 、逻辑规约 等.程序智能合成
                        技术目前主要有 3 种需求规约描述方法,将在第 3 节详细阐述.














                           Fig.2    Software development framework based on intelligent program synthesis model
                                               图 2   程序智能合成软件开发模型
   146   147   148   149   150   151   152   153   154   155   156