又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了

编程语言圈子又出“新花样”了!


如果开发者之间有一件事是共通的,那就是大家总爱创造新语言。这些语言往往被描述为“像 C 语言但更简单”、“像 C 语言但更现代”或“像 C 语言但专为某些特定群体设计”。而这一次,我们迎来了一种专为 AI 设计的编程语言,可以称之为“适用于 AI 的 C 语言”。


这次的新语言名为 Mirror,有一些独到之处。它的基本语法由两部分组成:定义的函数名称,以及输入输出示例。


它还有点像测试驱动开发(TDD),但不同的是你无需编写测试,而是直接提供黑盒版本。换句话说,这是一种 AI 驱动的函数式编程体验,同时也意味着你可以省去手动写代码的麻烦。


将 AI 融入传统编程语言


我们知道在 Excel 中,你可以通过提供一两个示例来演示如何格式化一列,之后 Excel 会学习这些模式,并将其应用到其他部分。


这种通过示例来引导的方式,是否也能用于编程呢?


卡内基梅隆大学从事教学工作的 Austin Z. Henley 就提出了这样的设想。想象一下,你不再需要一行一行地写代码,而是直接通过示例演示给计算机,让它“学会”你的意图。于是他和某创业公司 CTO Andrés Gottlieb 等人一起开发了一个名为 Mirror 的语言。


Austin 将此称为“编程示例”技术,用户提供想要的结果示例,系统生成可以执行该结果的代码。


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第1张


Mirror 设计得非常简单直观,用户首先需要定义函数的签名,包括函数名称、输入参数的类型以及输出参数的类型。接下来,用户需要提供一个或多个函数调用的示例,包括适当的输入参数和对应的输出结果。


让我们从一个非常简单的示例开始,看看这个语言的设计逻辑:


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第2张


首先定义一个名为 is_even 的函数,然后给出几个例子,比如 0 是偶数,返回 true,而 1 是奇数,则返回 false...... 这些例子为大语言模型(LLM)提供了训练依据,用于生成符合规则的实际代码。


最后用 is_even(12345) 来调用 is_even 函数,并传入参数 12345,那么它会判断 12345 是否为偶数。


在后端,Mirror 使用传统的递归下降解析器会处理这些示例,然后将它们发送到给大模型,大模型随后生成符合这些示例约束的 JavaScript 代码。生成的代码会显示给用户,如果需要,用户可以提供更多示例以进一步优化输出结果。


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第3张


基于 LLM 的示例编程编程语言


这是一门很有噱头的“编程语言”


有意思的是 Mirror 在技术社区 Lobsters 上曝光后,居然还有一些开发者给予了极高评价:


“我一直以为会有人发明一种集成了 LLM 的编译器,但从未真正思考过它可能会是什么样子。这是一个非常有趣的概念,就像一种伪代码解释器。我觉得这种方式可能有一天会成为主流的编程方法。”


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第4张


“很棒!我之前用 neuro-lingo 做过类似的事情,只不过开发者需要为函数提供类型签名和注释,这主要是作为一种思想实验。我一直认为下一步的迭代会类似于 Mirror,开发者的任务是编写测试,而不是实现具体功能。我觉得在未来,这种方法很有可能变得合理:一种只使用英语作为编程语言(通过 AI)的语言,同时用传统编程语言来编写测试以确保正确性。”


“在看到当前 LLM 的能力后,我就想到这会使形式化规范和验证的概念变得更加吸引人。”


自媒体博主 The Primagen 则花了 2 个小时探索 Mirror。


他一开始也被 Mirror 的愿景吸引住了,认为这简直是语言轮子界里的“适用于 AI 的 C 语言(be C but for AI)”。


还具备由人工智能驱动的函数式体验,虽然避免了编写代码的繁琐,但却需要编写测试用例,这就好像是一种“后期 TDD”。所以他认为,Mirror 的出现标志着人工智能驱动的测试驱动开发进入了“后期阶段”。


并且他调侃说,“只要风险投资人看到 Mirror 的介绍,那么很可能会轻松获得一轮千万美元级别的融资”,因为“人工智能”这个词对风投来说似乎具有莫大的吸引力。他还拿 Friend 举例,这是一个人工智能社交网络产品,仅跟 AI 沾个边就筹集了约 250 万美元(随后,他们花了 180 万用来购买 Friend.com 域名)。


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第5张


接着他希望用 Mirror 来实现一个简单的功能。不幸的是即使提供了大量的示例,Mirror 生成的代码仍然是错误的。


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第6张


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第7张


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第8张


但 GPT 只用了一句简单的英语描述和代码结构,就轻轻松松地完成了任务。


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第9张


折腾 2 个小时候后,The Primagen 评价说,Mirror 目前适合用来学习,比如可以帮助你学习如何编写解析器。


现实中,AGI 离我们还比较遥远,所以不要只想着回避学习编程。就算 Sam Altman 宣称距离 AGI 只有“几千天”,那起码也还有 10 年时间。所以为什么有些人非要选择绕过学习基础编程的过程,而转而依赖工具或 AI?


他最后吐槽道:“要知道,掌握技术并学习解决问题的能力永远是有价值的。而如果未来的某一天,AI 真的变得无所不能,那么具备技术技能的人依然会保持竞争力。无论未来 AI 多强大,技术能力都将是你提升自我、解决问题和实现价值的核心力量。这不是一个非此即彼的选择,你可以同时学习技术、享受创造的乐趣,并为自己的职业发展打下坚实的基础。”


参考链接

https://austinhenley.com/blog/mirrorlang.html


https://lobste.rs/s/ui3ld4/mirror_llm_powered_programming_by


https://medium.com/@prateek.vyas/mirror-the-ai-powered-programming-language-using-examples-94fab8c88585


https://www.youtube.com/watch?v=KuLUd1UIvVA


本文来自微信公众号 “AI前线”


又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了  第10张