36kr-科技 2024年12月02日
又又又给 AI 发明新语言了,卡内基梅隆大学让计算机理解人的想法后自动coding,结果翻车了
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Mirror 是一种新兴的编程语言,旨在通过提供函数输入输出示例,让 AI 生成代码,从而简化编程过程。它类似于 Excel 中通过示例学习的模式,用户只需提供示例,AI 就能生成代码。Mirror 使用传统解析器和大型语言模型(LLM)生成 JavaScript 代码,并允许用户通过提供更多示例优化结果。虽然 Mirror 引起了一些开发者的兴趣,但也存在一些问题,例如生成的代码有时会出现错误。文章最后强调了学习编程基础的重要性,即使 AI 发展迅速,掌握技术和解决问题的能力依然是核心竞争力。

🤔 **Mirror 是一种基于示例的编程语言:**用户通过提供函数的输入输出示例,让 AI 生成相应的代码,例如定义一个判断偶数的函数,只需给出 0 是偶数、1 是奇数的例子,AI 就能生成判断偶数的代码。

💡 **Mirror 的工作原理:**它使用传统的递归下降解析器处理示例,并将它们发送给大型语言模型 (LLM),LLM 生成符合示例约束的 JavaScript 代码。用户可以提供更多示例来优化结果。

💻 **Mirror 的优势和局限:**一些开发者认为 Mirror 很有前景,未来可能成为主流编程方式,但目前仍处于早期阶段,生成的代码有时会出现错误,需要进一步完善。

⚠️ **学习编程基础的重要性:**文章强调即使 AI 发展迅速,学习编程基础和掌握解决问题的能力依然至关重要,这将帮助你在未来保持竞争力。

🚀 **AI 驱动的函数式编程体验:**Mirror 旨在提供一种 AI 驱动的函数式编程体验,用户无需手动编写代码,只需提供示例,AI 就能生成代码,这类似于测试驱动开发(TDD)的后期阶段。

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

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

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

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

将 AI 融入传统编程语言

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

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

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

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

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

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

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

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

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

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

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

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

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

“很棒!我之前用 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 域名)。

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

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

折腾 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前线”,36氪经授权发布。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI编程 Mirror 示例编程 大型语言模型 函数式编程
相关文章