您的位置首页 >人工智能 >

Nolang,面向 AI 时代重构调用约定与代码形态的系统语言评述

Nolang 是一门专门为 AI 代码生成、人机协同写代码而设计的新型系统编程语言,它重新设计了调用约定与整套代码形态,不靠一堆修饰关键字去约束内存权限,而是用一套极简的执行模型降低大模型写出错代码的概率,兼顾系统级高性能和 LLM 友好的代码结构,属于实验性无 GC、内存安全的系统语言,性能贴近 C,二进制文件小巧,同时语法规则高度统一,AI 在改写、补全、迭代代码的时候改动范围更小,差异更干净。之所以要做这种全新的调用约定,是因为现在主流系统语言像 Rust、C++,可变引用、不可变引用、所有权、生命周期这套机制对大模型门槛很高,LLM 很容易搞错 mut、引用、输出参数,写出内存不安全或者编译不通过的代码;Nolang 的核心思路就是用位置决定读写权限,输入参数位置只读,输出返回位置允许写入,删掉 ref、out、&mut 这类容易混淆的标记,让函数签名本身就能把全部语义说清楚,同时搭配单线程、无栈协程加多进程的并发模型,减少并发陷阱,进一步降低 AI 生成代码出错的机会。它的编译器会先转成 LLVM IR,再交给 Zig CC 优化链接,不需要垃圾回收,依靠延迟所有权机制保障内存安全,每个函数还强制配套 shadow 测试块,如果没有写对应的测试,代码直接无法编译,从语言层面约束 AI 和开发者,避免生成没有校验的裸代码。

一、Nolang 核心调用约定规则清单

  • ✅ 权限规则唯一:函数左边括号为输入,只读;右边括号为输出,可写,不再使用 mut、ref、&、out 等修饰符
  • ✅ 函数签名示例:eq-raw = (b str, n i64) (eq bool),一眼分清输入与输出
  • ✅ 别名规则自然推导:不需要额外别名标注,从位置权限就能推导出别名约束
  • ✅ 调用形态统一:调用写法固定,结构规整,适合 LLM 学习、续写、局部修改
  • ✅ 强制测试约束:每个函数必须附带 shadow 测试,编译器拦截无测试函数

二、Nolang 关键技术设计

1. 内存安全模型

属于无 GC 系统语言,采用延迟所有权模型,不用手动维护生命周期,函数结尾批量回收内存,在保留接近 C 的运行性能前提下,规避野指针、释放后使用这类底层错误。基准测试显示,它在 fib 运算上仅比 C 慢大约百分之十,二进制体积很小,远小于 Rust、Go 的同等程序。

2. 并发模型

采用单线程主逻辑 + 无栈协程 + 多进程隔离,不引入复杂锁、原子、共享可变状态,大幅减少 AI 写出并发 bug 的概率,适合 Agent、底层服务、高性能工具这类场景。

3. 面向 AI 的代码形态

代码倾向局部化改动,修改一处不会连带大面积破坏类型与权限;diff 干净,语义集中在函数签名;语法符号少,歧义点少,降低大模型理解与改写负担。

4. 工具链路线

源码转译 LLVM IR,再经由 Zig CC 优化链接;语言核心语义使用 Coq 完成形式化证明,用来保障底层语义可靠。

三、上手基础步骤

  1. 获取源码:拉取 Nolang 官方仓库,准备好 LLVM、Zig CC 编译依赖。
  2. 编写函数:按照左输入、右输出的规则写签名,不能依靠 mut、引用标记控制可变。
  3. 添加 shadow 测试:给每一个函数补上对应的断言测试,缺少测试无法编译。
  4. 编译运行:调用编译器生成原生二进制,直接执行,不需要运行时虚拟机。
  5. 迭代调整:修改代码时优先局部改动,利用语言设计保持签名语义稳定,方便 AI 辅助迭代。

四、对比主流系统语言

对比项NolangRustC/C++
可变控制位置决定读写mut、所有权、生命周期指针、引用手动管控
GC无 GC,延迟所有权无 GC,所有权无 GC,手动内存管理
AI 友好度高,歧义少,强制测试中等,所有权容易让 LLM 写错低,坑点极多
二进制体积很小偏大小
并发模型协程加多进程隔离丰富但复杂自由,风险高

五、最终结论

Nolang 这套为 AI 时代重构调用约定与代码形态的设计,本质就是把过去靠开发者心智承担的约束下沉到语言执行模型里,专门适配大模型写代码;它现在还处在实验阶段,生态比较单薄,但给面向 AI 原生的系统语言提供了一条新思路,能不能大范围落地,要看后续生态、库支持以及开发者接受程度。

【相关 FAQ】

问题 1:Nolang 这套为 AI 时代重构调用约定与代码形态的系统语言,最核心的调用约定是什么?

回答 1:Nolang 这套为 AI 时代重构调用约定与代码形态的系统语言,最核心规则就是位置决定权限,函数左侧输入位置只读,右侧输出位置可写,取消 mut、ref、&mut 这类修饰关键字。

问题 2:Nolang 面向 AI 重构代码形态,为什么对大模型写代码更友好?

回答 2:Nolang 面向 AI 重构代码形态,规则单一、歧义少,函数签名承载全部语义,改动局部化,diff 干净,还强制 shadow 测试,减少大模型容易写错的所有权、引用、可变权限相关错误。

问题 3:Nolang 作为重构调用约定的系统语言,性能和 Rust、C 相比怎么样?

回答 3:Nolang 作为重构调用约定的系统语言,没有垃圾回收,编译后是原生二进制,基准测试性能接近 C,略快于同等优化下的 Rust,生成的二进制体积远小于 Rust。

【参考资料】

[2026-11-11](Nolang 设计评述:一套为 AI 时代重构调用约定与代码形态的系统语言)阿里云开发者社区

[2026-11-11](Nolang 设计评述:一套为 AI 时代重构调用约定与代码形态的系统语言)腾讯云开发者社区

[2026-06-05](Nolang VS Rust)阿里云开发者社区

[2026-06-05](Nolang VS Rust)腾讯云开发者社区

【免责声明】

  1. Nolang 当前属于实验性编程语言,生态、标准、工具链还在持续迭代,接口、语法规则未来有可能发生变动。
  2. 性能数据来自公开基准测试,实际运行表现会随硬件、编译参数、业务代码产生差异。
  3. 本文仅为技术评述整理,不构成生产环境使用推荐,如果要用于正式项目,需要自行充分验证语言稳定性与依赖完备度。