专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
程序员的那些事  ·  极狐 GitLab ... ·  昨天  
CTO肉饼  ·  OpenAI第三弹:Sora它真的来了 ·  昨天  
程序猿  ·  网传一些著名互联网公司的实习工资 ·  3 天前  
51好读  ›  专栏  ›  程序猿

适用于AI的“C语言”?卡内基梅隆大学又又又发明新语言了

程序猿  · 公众号  · 程序员  · 2024-12-09 21:02

正文

来自公众号:InfoQ

整理 | Tina

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

如果开发者之间有一件事是共通的,那就是大家总爱创造新语言。这些语言往往被描述为“像 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


---END---