jordanhubbard/nanolang
A tiny experimental language designed to be targeted by coding LLMs
解决的问题
NanoLang 是一种专为机器(如 LLM)编写、供人类阅读的编程语言和安全运行时。它解决了编程语言中的歧义问题,该问题可能导致 AI 代理生成代码时出错。同时,它还提供了一个安全、最小权限的环境,可在标准内核上托管服务,而无需自定义内核。
工作原理
NanoLang 使用无歧义的语法和在 Coq 中形式化证明的核心语义(涵盖类型健全性、进展性和确定性)。它可以被转译为 C 以获得原生性能,或通过 NanoISA 虚拟机执行,该虚拟机是一种基于栈的虚拟机,通过将危险的外部调用隔离在独立进程中来确保稳定性。
适用人群
适用于需要形式化验证、安全语言用于机器生成代码的开发者,以及对形式化验证、安全运行时和 AI 驱动开发交集感兴趣的人员。
主要亮点
- 形式化证明的语义:核心语义在 Coq 中机械证明,无公理或承认的子情况。
- NanoISA VM:经过验证的字节码虚拟机,将 FFI 调用隔离在协进程(co-process)中,防止崩溃影响主程序。
- 机器主导的优化:支持常量折叠、死代码消除和基于性能分析的内联。
- 安全运行时:具备不可伪造的能力、POSIX 服务架构和用于安全服务托管的陷阱日志。
- 影子测试:函数定义必须伴随强制测试块,确保代码从设计之初就经过测试。
- LLM 友好:包含机器可读的正式规范(
spec.json)和训练参考(MEMORY.md),帮助 LLM 正确编写该语言。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目