AI News HubLIVE
站内改写1 分钟阅读

Jacquard:一种由AI编写、人类审核的编程语言

Jacquard是一种研究原型编程语言,专为AI编写、人类审核的代码设计。它通过语言内置的效果跟踪、概率编程和结构化身份,让人类审核者无需逐行阅读代码即可理解程序的影响范围与确定性。

来源Hacker News AI作者: jbwinters

Jacquard 是一种面向 AI 编写、人类审核的代码的编程语言研究原型。它旨在解决一个关键问题:当大多数代码由机器生成时,人类审阅者需要一种方式,在不逐行阅读的前提下,快速判断程序能做什么、会接触哪些资源,以及结果的确定性如何。

Jacquard 的核心设计围绕三个特性:显式效果跟踪、概率编程和内容寻址标识。语言内置了代数效果(algebraic effects)和效果行系统,每个函数签名都标注了它可能执行的副作用(如网络请求)。运行时默认拒绝未显式授予的全局效果(通过 --allow 参数授权),从而在语言层面实现了权限控制。

概率编程方面,Jacquard 将采样和观测作为效果操作,通过处理器(handler)实现推理算法。开发者可以编写一个在有限离散世界中枚举所有可能结果的程序,并计算每个结果的精确概率。一个示例是代码修复演示:它把失败的测试视为证据,计算哪些补丁仍然可能以及每种补丁的概率。

内容寻址标识则基于规范化的解析结构(而非源代码字节)计算哈希。注释、格式化、本地重命名等都不会改变程序的标识,因此纯测试仅在代码或依赖内容变化时重新运行。

Jacquard 当前版本 0.1 为候选版,支持端到端工作流:一个紧凑的 .jac 语法、OCaml 编写的检查器和 CPS 解释器、一个将内核编译为 C 的 AOT 后端,以及 Warp 测试框架。它还包含命令行工具、标准库和案例研究。安装程序支持 Linux x86-64、macOS Intel 和 Apple Silicon 二进制文件。

Jacquard 的设计哲学是:语言本身应该回答“这段代码能接触什么?我们有多确定?”而不需要人类审阅每行代码。它为 AI 代理编写的代码提供了一层可审核的确定性保障。