论文部分内容阅读
实现编程自动化一直是计算机学科的理想之一。在当今软件产品交付需求急剧提升的情况下,代码编写的规模随之大幅度增长。繁重的研发需求压力要求软件开发必须实现快速迭代,研发周期必须被缩短。如何利用智能化技术提高代码编写的效率和质量,已经成为现今社会软件开发的重要研究方向之一。
程序设计是人类复杂的智能活动,让计算机自动的学会编写程序,不仅是软件开发领域关心的问题,也是人工智能领域研究者长期以来一直希望攻克的重大问题。现有的自动编程算法如归纳逻辑编程和遗传编程等虽然能够自动生成代码,但生成的代码普遍具有规模较小、复杂度低、复用性差等缺陷,远远无法达到工业化要求。
本文在研究现有自动编程方法背景的基础上,总结了现有自动编程方法的缺陷与不足,提出了一套基于深度学习的自动编程方法(Deep-Learning-BasedAutomaticProgramSynthesisMethod,简称DLPS),能够根据任务需求自动生成符合任务描述、规模较大、复杂度高、复用性强、风格一致且规范的可执行代码。本文设计了完整的适用于本文方法的领域特定语言,并且提出了程序属性的概念,有效加速了代码检索生成过程,提高了代码生成的准确率。
本文提出的DLPS方法包含两个关键技术的结合:程序属性预测技术和代码检索生成技术。本文通过定义领域特定语言和程序属性、训练深度神经网络、预测程序属性、使用结合程序属性的代码检索技术生成完整代码等一系列过程,实现了一套从任务需求直接产生符合需求描述的完整可执行程序的完整方法。
实验证明,本文提出的DLPS方法有效加速了代码生成的过程,且避免了状态空间爆炸和死循环等一系列现有自动编程方法的缺陷,提高了代码生成的效率和准确率。本文方法能够提高软件开发人员的生产力,缩短软件开发的周期,在节约软件开发成本的同时提高软件开发的效率和质量,具有广阔的应用前景。
程序设计是人类复杂的智能活动,让计算机自动的学会编写程序,不仅是软件开发领域关心的问题,也是人工智能领域研究者长期以来一直希望攻克的重大问题。现有的自动编程算法如归纳逻辑编程和遗传编程等虽然能够自动生成代码,但生成的代码普遍具有规模较小、复杂度低、复用性差等缺陷,远远无法达到工业化要求。
本文在研究现有自动编程方法背景的基础上,总结了现有自动编程方法的缺陷与不足,提出了一套基于深度学习的自动编程方法(Deep-Learning-BasedAutomaticProgramSynthesisMethod,简称DLPS),能够根据任务需求自动生成符合任务描述、规模较大、复杂度高、复用性强、风格一致且规范的可执行代码。本文设计了完整的适用于本文方法的领域特定语言,并且提出了程序属性的概念,有效加速了代码检索生成过程,提高了代码生成的准确率。
本文提出的DLPS方法包含两个关键技术的结合:程序属性预测技术和代码检索生成技术。本文通过定义领域特定语言和程序属性、训练深度神经网络、预测程序属性、使用结合程序属性的代码检索技术生成完整代码等一系列过程,实现了一套从任务需求直接产生符合需求描述的完整可执行程序的完整方法。
实验证明,本文提出的DLPS方法有效加速了代码生成的过程,且避免了状态空间爆炸和死循环等一系列现有自动编程方法的缺陷,提高了代码生成的效率和准确率。本文方法能够提高软件开发人员的生产力,缩短软件开发的周期,在节约软件开发成本的同时提高软件开发的效率和质量,具有广阔的应用前景。