雷锋网AI科技评论按:伴随着AI技术的发展和应用,人们对「人工智能」的认知也不断被刷新和拓展,在大众眼中,AI正变得越来越强大,不仅可以下棋博弈战胜人类的顶尖选手,还可以进行语音识别、自动翻译、人脸识别,甚至可以自动驾驶汽车。最近,北京大学与硅心科技团队联合推出了一项新的AI成果——aiXcoder,它利用AI技术辅助开发者自动进行程序编写,引燃了人们关于「AI+软件」的巨大发展潜力以及「软件开发自动化」发展前景的讨论与思考。
让计算机自动编写代码,不仅是软件开发领域关心的问题,也是人工智能领域长期关心的问题。早在年,机器学习领域的先驱者Solomonoff就曾提出,「对人类而言,编写计算机程序是一项既困难又耗时的活动,通过自动代码生成或程序归纳来实现这个过程的自动化是人工智能领域的一个长期研究主题。」近年来,DeepMind和Facebook在其论文中也提出了类似的论述。
那么,在没有人类程序员干预的情况下,完全依赖AI技术进行程序代码生成,当前的研究进展情况如何呢?下面是近年来的几项典型研究工作:
年,GoogleDeepMind发表了论文「NeuralProgrammer-Interpreters」,提出了一种利用程序的输入输出结果生成简单程序的深度神经网络模型,但它生成程序的规模具有较大限制,通常是由简单指令组合而成的短小程序;年,Facebook在论文「UnsupervisedProgramInductionwithHierarchicalGenerativeConvolutionalNeuralNetworks」中也提出了一种在包含8种基本指令的数据集上选择指令,组合出程序的方法;同年,微软针对类似的问题发表论文「DeepCoder:LearningtoWritePrograms」提升了程序生成的速度,但在程序规模与生成效果上仍未能取得质的提升。
这些成果对程序自动生成的研究起到了重要的推动作用,但同时也可以看出,在完全不依赖程序员的场景下,进行工业级程序的编写,仍需要进一步研究。
与上述研究思路不同,来自北京大学的研究团队,正致力于「辅助人类程序员自动编写程序代码」。「虽然在完全不依赖人类程序员的场景中自动生成程序仍需进一步研究,但我们可以利用人工智能技术来辅助人类编写程序。」北京大学高可信软件技术教育部重点实验室副教授李戈对雷锋网表示,「我们已经在『利用AI辅助程序员编程,以提高程序编写的效率和质量』方面取得了重要的研究进展。」
李戈所在的研究团队是国际上最早从事基于深度神经网络的计算机程序分析与生成研究的团队之一,在代码功能语义分析、代码自动生成与补全等方面的研究成果受到国内外同行的高度