aallan/vera
Vera: a programming language designed for LLMs to write
解决的问题
模型在大规模下难以保持连贯性,难以推理状态,也难以管理变量名,这常常导致命名相关错误并丢失对值的追踪。Vera 是一种专为大型语言模型编写代码而设计的编程语言,用结构化引用替代传统变量名,并强制要求编写契约以确保代码可被机械验证。
工作原理
Vera 用带类型的槽引用(例如 @Int.0 表示最近的整数绑定)替代变量名。它使用 SMT 求解器(Z3)在每个调用点静态证明前置条件(requires)和后置条件(ensures)。该语言默认为纯函数,函数签名中必须显式声明副作用(如 <Http> 或 <Inference>)。程序编译为 WebAssembly,可在命令行、浏览器或 WASI Preview 2 组件中运行。
适用人群
以 AI 代理和 LLM 为主要代码作者的场景,以及希望生成形式化验证、安全且无命名冲突的代码的开发者。
特色亮点
- 带类型的槽引用:通过使用结构化引用而非变量名,消除命名错误。
- 强制契约:每个函数必须声明前置条件和后置条件,编译器通过 Z3 静态证明其正确性。
- 显式副作用类型:副作用在签名中显式标注,防止未经授权的操作。
- 面向代理的诊断优化:编译器错误以模型可理解的指令形式呈现,提供推理依据和具体修复示例。
- 设计即安全:通过在类型检查阶段强制字符串来源规则,防止 SQL 注入等常见漏洞。
- 多目标编译:可编译为 WebAssembly,在 CLI、浏览器和 WASI 0.2 主机上运行。
相关
- 项目
- 项目
- 项目
- 项目
- 项目