程序合成问题是程序设计语言领域的重要问题,被徐家福先生称为“提升软件生产率的根本途径”,被图灵奖获得者Pneuli称为“程序设计理论最核心的问题”。本报告将首先简要回顾北京大学团队在程序合成特别是修复补丁合成上的一系列工作,包括基于差异的空间表示、基于概率的程序合成、交互式程序合成等,然后重点介绍本团队下一步的研究目标——算法合成。算法合成旨在探索用计算机自动从规约中生成高效算法,在程序优化、高可信软件、约束求解和逻辑编程等多个领域都有较高的应用价值。本团队的研究思路是将程序演算领域和程序合成领域的研究相结合,程序演算的研究结果确定目标算法的结构,而程序合成的技术找到合适的目标算法。目前的初步探索结果已经能合成部分并行分治和动态规划的算法,成功解决近百个算法问题,包括算法导论的习题、算法论文中讨论的问题和世界算法比赛中难住大多数队伍的问题。
[程序合成, 算法合成]
熊英飞