你给需求文档,AI就能帮你开发安卓App


用自然语言生成代码不算稀奇 , 但现在 , 这项技术涉及的业务范围真是越来越广了 。
就有一个叫做Text2App的“AI” , 你“喂”给它一串文字需求 , 它就能直接给你“消化”成安卓应用!
你给需求文档,AI就能帮你开发安卓App
本文插图
不信你看 。
这是输入的文字:
创建一个APP , 上面有一个视频、一个按钮 , 一个文本转语音的功能以及一个手机加速传感器 。 点击按钮 , 播放视频;摇晃手机 , 念出文字“happy Text2App” 。
整个过程除了等编译花上几分钟 , 无需别的代码操作 , 就能直接生成下面这样一个安卓应用:
不知广大程序员们尤其是安卓开发 , 看完感觉如何?
Text2App这个框架出自加州大学洛杉矶分校和孟加拉国工程技术大学 。
你给需求文档,AI就能帮你开发安卓App
本文插图
它不是直接将自然语言生成源码 , 而是先生成中间语言 , 再由编译器生成源码 。
为什么要先生成中间语言呢?
你给需求文档,AI就能帮你开发安卓App
本文插图
因为此前大多数根据文字描述生成程序的研究都是基于端到端的神经机器翻译 (NMT) 模型 , 类似于Google 翻译 , 将自然语言直接翻译成源码 。
虽然其中一些效果还不错 , 但大多数无法生成大一点的、上百行代码的程序 。
为了克服这个限制 , 研究人员就在这个过程发明了一个新的形式语言 (formal language)做“桥梁” 。
它能“搞懂”复杂的源码 , 并将用户给定的自然语言转换出一小部分tokens(标记) , 再形成一个简单的程序表示代码 。
最后用研究人员开发的一个编译器 , 就能把这个中间语言转换成源码 。
最理解编程语言的还是编译器 , 完全让AI来生成复杂的程序还不行 , 所以离不开编译器的大力支持 。
当然 , 生成中间语言还是靠的神经机器翻译模型 。
下面是“文字描述转换成APP”的具体流程:
你给需求文档,AI就能帮你开发安卓App
本文插图
文字描述:
Create an app with a textbox, a button named “Speak”, and a text2speech. When the button is clicked, speak the text in the text box.
上面这段自然语言首先被格式化(例如将“Speak”转为“ ‘STRING0’:’Speak’ ”) , 然后交给一个有编码器和解码器的Seq2Seq神经网络翻译成简单的应用程序表示(SAR)——这就是上面说的中间语言:

再通过SAR编译器将中间语言转换成MIT App Inventor源码文件(.scm/.bky) , 由MIT打包成最终可用的安卓端应用程序即可 。