跳到主要内容

认识 nature

nature 是现代系统级编程语言和编译器,语法上追求简洁优雅,关注使用者的编写与阅读体验。

在编程语言层面,nature 具有以下特点:

  • 类型系统,null 安全,泛型,联合类型
  • 自研编译器/汇编器/链接器,不依赖 llvm。能够编译至 amd64/riscv64/wasm 架构
  • 无入侵的方式与 C 语言等交互进行高效率与高性能开发
  • 渐进式 GC,支持自动与手动 GC
  • 内置 vec/map/set/tup 数据结构
  • 包管理与模块管理
  • 函数标签/闭包/错误提示/运行时堆栈追踪/协程
  • 集成SSA/线性扫描寄存器分配/反射机制/汇编器与连接器

随着标准库以逐步完善,nature 可以应用于游戏引擎与游戏制作、科学与 AI 计算、操作系统与物联网、WEB 开发。其中游戏引擎将作为 nature 0.7.0 ~ 1.0+ 的核心任务。

nature 适合于开源创作者/独立创作者以及学习和研究使用,我们不仅希望你能够在语言中得到便利,同样也希望你使用 nature 创作快乐且有趣的事情。

📌 FAQ

1.natrue 采用类型前置还是后置?

nature 统一采用类型前置,包括函数的返回值类型。一个原始设计示例 fn sum(int a, int b):int c 可以看到函数的返回值同样采用类型前置。

将 ident 全部省略可以得到函数的类型声明 fn(int,int):int f = xxx ,通常在函数的定义上返回值的 ident 也需要省略,可以得到正式的函数声明 fn sum(int a, int b):int {}

2.nature/logo 的含义?

logo 是一艘星际飞船,意为《三体》中的自然选择号,nature 也来源于此。

3.为什么没有性能测试与比较?

nature 目前还在 beta 版本进行核心功能的开发,没有对编译器后端进行任何优化。所以做性能测试是不公平且没有意义的。

4.nature 开发了多久?

当前主仓库已经开发了近 3 年,实际投入的时间则接近 6 年左右。我想说的是 nature 项目并不会被随意的放弃,并且会富有生命力的持续开发并维护下去。