展示 HN:Jacquard,一种用于 AI 编写、人工审核代码的编程语言
Jacquard 是一个 FriendMachine 研究项目,用于运行、审核、模拟和信任由模型编写、由人审查的程序。首先从对 Jacquard 的人性化介绍开始。具体来说,它是一个小型编程语言,具有紧凑的 .jac 表面语法、OCaml 检查器和 CPS 解释器、一个当前编译内核 .jqd 承载体的 C 生成本地 AOT 后端、一个命令行工具、一个用 Jacquard 编写的标准库和一个名为 Warp 的测试框架。版本 0.1 是一个从头到尾的工作原型,但它是一个研究原型,而不是生产语言;docs/release/0.1/LIMITS.md 是诚实的边界。安装 0.1 发布候选版本,不需要 OCaml 或 opam:curl -fsSL https://raw.githubusercontent.com/jbwinters/jacquard-lang/jacquard-core-0.1-rc3/scripts/install.sh | sh ~ /.local/bin/jac run ~ /.local/share/jacquard/demos/basics/m1-fact.jac 期待的输出是 120。已发布 Linux x86-64、macOS Intel 和 macOS Apple Silicon 二进制文件;来自源代码的开发文档如下。然后在具体和概率遥测世界下运行一个策略,随后进行采样和穷举 Warp 检查:sh ~ /.local/share/jacquard/demos/case-studies/release-risk/run.sh 对于人类而言,大多数语言告诉你一个程序计算的内容。Jacquard 还暴露它可能执行的效果、有限离散的不确定性和规范程序身份。工具可以检查所有三者,因为它们存在于语言中,而不仅仅是在评论、日志或你对代码库的记忆中。在这里你可以做的事情是大多数语言无法提供的:读取一行代码,查看一个函数可能执行的效果。像 (text) ->{net} text 这样的签名表示该函数可能执行其网络效果。Jacquard 运行时会拒绝未处理的世界效果,除非其权限明确被授予 --allow,包括动态代码执行的效果。这是在研究运行时中的语言级别强制,而不是操作系统沙盒的替代。针对多个世界运行一个程序。相同的代码可以在真实网络、脚本假的环境、上周流量的录音或服务器通常行为的概率模型中运行。处理程序是回答程序对外部世界请求的部分;你只需更换处理程序,而代码则保持不变。这可以替代许多常规的效果边界模拟,并使得“如果 API 崩溃我的代理会怎么做?”成为一项普通测试。为有限离散模型枚举确切概率。一个程序可以抽样加权选择并记录证据,而枚举列出每个可达结果及其确切概率。下面的修复演示将失败的测试视为证据,并计算哪些补丁仍然可行以及每个补丁的可能性。重命名和重新格式化而不改变规范身份。Jacquard 哈希规范已解析的结构,而不是源字节。注释、格式、来源以及普通的本地或术语重命名都是被删除的;纯测试仅在规范代码或依赖内容发生变化时才重新运行。这是结构身份,而不是证明任意程序在行为上是等价的。所有这一切的赌注是:当大多数代码由机器编写时,审查它的人需要语言本身回答“这可以影响什么,我们对此有多确定”,而不必阅读每一行。对于代理,请首先阅读 docs/SKILL.md。它将内核、CLI、序言、Warp 测试和已知的难点压缩成一个文件,并将其加载为项目技能。操作规则在 AGENTS.md 中。节省时间的方法:行为由证据固定:将测试/cli/下的成绩单、语料库黄金、演示脚本和 docs/release/0.1/CLAIMS.md 作为你可以依赖的证据。如果一个固定失败,将其视为关于你更改的信息,并永远不要削弱一个固定以使差异通过。内核有 27 种形式( docs/ast.md);.jac 是对这些形式的投影,而引导 .jqd 将永久支持。将交付的表面边界及其停靠后续视为发布证据,而不是冻结语法;不要添加超出范围的功能(AGENTS.md 列出了它们)。开发门是 dune build @all && dune runtest && dune fmt,之后进行干净的 git diff --exit-code。核心要素对于说编程语言的读者:一种统一的表示法:每种形式都是 (head, meta, args) 三元组,内核语法有 27 种形式。引用代码是普通数据。具有深度、多次处理程序的代数效果。处理程序可以零、一次或多次恢复计算,这使得穷尽搜索和精确推理成为普通的库代码。显式能力授予。运行时仅为你通过 --allow 传递的效果安装外部世界的处理程序;没有环境权限。类型和效果行。每个箭头都携带函数可能执行的效果集,因此程序的推断行是其权限清单。离散概率编程作为库:sample 和 observe 是效果操作,且每个...
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡