2017年2月,微软研究院与剑桥大学宣布他们合作开发了一种新的算法,名为DeepCoder——现在看来可能跟算法的名称有关,因为Coder也是程序员的昵称,有读者以为机器程序员来了,传出了“DeepCoder能够从网络论坛和开源社区中复制代码并加以组合来生成新的程序”的说法。
真是这样吗,程序员真的就要被取代了吗?
显然不是。
如同作者在论文所说,这是一种能根据问题输入输出自动编写解题程序的算法:目前业界使用的编程语言对于机器算法来说还是太难掌握了,DeepCoder使用的编程语言是一种原创的、极其精简的语言,其中只有整数数据类型,内置了基本的四则运算以及一些基本函数,例如排序,或者对数组中的元素依次执行某种操作等等。此外,DeepCoder完成的程序生成是一种叫做Inductive Program Synthesis(IPS,归纳式程序合成)的特例;在这种程序生成方法中,机器通过观察输入输出的样例组合来生成一个 “与当前样例数据行为一致” 的程序。
这就是说,机器连问题的描述都不看,离取代程序员还远着呢,像这样:
不过,尽管原理是如此简单,DeepCoder还是展现了惊人的解题能力:它使用一种非常简单的DSL语言,这种语言允