小心,AI 机器学会编程了

伴随着 AI 技术的发展和应用,人们对“人工智能”的认知也不断被刷新和拓展,在大众眼中,AI 正变得越来越强大,不仅可以下棋博弈战胜人类的顶尖选手,还可以进行语音识别、自动翻译、人脸识别,甚至可以自动驾驶汽车。

最近,北京大学与硅心科技团队联合推出了一项新的 AI 成果——aiXcoder,它利用 AI 技术辅助开发者自动进行程序编写,引燃了人们关于“AI+软件”的巨大发展潜力以及“软件开发自动化”发展前景的讨论与思考。

让计算机自动编写代码,不仅是软件开发领域关心的问题,也是人工智能领域长期关心的问题。 早在 1964 年,机器学习领域的先驱者 Solomonoff 就曾提出,“对人类而言,编写计算机程序是一项既困难又耗时的活动,通过自动代码生成或程序归纳来实现这个过程的自动化是人工智能领域的一个长期研究主题。”近年来,DeepMind 和 Facebook 在其论文中也提出了类似的论述。

那么,在没有人类程序员干预的情况下,完全依赖 AI 技术进行程序代码生成,当前的研究进展情况如何呢?

2016 年,Google Deep Mind 发表了论文《Neural Programmer-Interpreters》,提出了一种利用程序的输入输出结果生成简单程序的深度神经网络模型,但它生成程序的规模具有较大限制,通常是由简单指令组合而成的短小程序;2017 年,Facebook 在论文《Unsupervised Program Induction with Hierarchical Generative Convolutional Neural Networks》中也提出了一种在包含 8 种基本指令的数据集上选择指令,组合出程序的方法;同年,微软针对类似的问题发表论文《DeepCoder: Learning to Write Programs》提升了程序生成的速度,但在程序规模与生成效果上仍未能取得质的提升。

来自北京大学的研究团队,正致力于辅助人类程序员自动编写程序代码, 并且已经在“利用 AI 辅助程序员编程,以提高程序编写的效率和质量”方面取得了重要的研究进展。

近年来,该团队取得了一系列重要研究成果,形成了一批重要的行业专利及学术论文。 基于所取得的科研成果,该团队所在实验室正转向产业化应用,致力于将“智能化软件开发技术”转化为能够支持工业界生产的商业产品——aiXcoder。

aiXcoder 智能编程机器人

aiXcoder 是一款全新的智能编程机器人产品,它采用与程序员一起「结对编程」的方式为程序员提供服务,从而提高程序员的编程效率。 在 aiXcoder 的辅助下,程序将彻底摆脱传统的编程模式,不再需要逐字逐句编写程序。

aiXcoder 能够自动预测程序员的编程意图,连续向程序员推荐「即将书写的下一段代码」,程序员可以通过“一键补全”的方式,直接确认接下来输入的代码,从而大大提升代码的编写效率。 同时,aiXcoder 还能够在程序编程的过程中,不断智能地搜索并推荐与当前程序功能相似的规范程序代码,为程序员提供有力的编程参考。 目前,aiXcoder 编程机器人已经推出了 Android、JFinal、Tensorflow 等多个版本,为不同领域的编程者提供辅助。

在程序员编写代码的过程中,aiXcoder 能够自动推测程序员的编程语义,并按照这些知识和经验及时向程序员推荐可能要使用的编程语句,以达到辅助程序员自动完成程序的目的,大大提升程序开发的速度。

当前的 aiXcoder 正以“结对编程”的形式辅助程序员工作,它就像一个时刻陪伴程序员工作的“伙伴”,与程序员一起编写代码,帮助程序员查漏补缺。

“传统的结对编程是人与人结对,我们希望能够实现人与机器的结对工作”,北京大学高可信软件技术教育部重点实验室副教授李戈说,“我们希望 aiXcoder 能够承担更多的'劳动',能够让程序员有更多的时间和精力投入到有创造性的工作中,让程序员的创造性价值得到更加充分的体现。”

编辑:南拾

审核:小小

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105B1KRMS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券