[!WARNING] 项目重构中 项目状态说明:本仓库的源码部分(
src/,include/等)已废弃并删除。目前本项目仅持续更新语言设计文档。重构后的编译器源码将在另外的仓库中发布,敬请期待。
Lumos 是一门旨在结合高性能与现代化开发体验的系统级编程语言。它在保留 C/C++ 灵活性的基础上,引入了严格的函数纯度系统、多级变量可变性控制以及现代化的语法特性。
- 显式纯度控制:通过
def(纯函数)、fun(逻辑纯函数) 和act(副作用函数) 强制区分代码的副作用,提升可维护性与可测试性。 - 精细的可变性管理:提供
var(完全可变)、val(逻辑不可变)、imv(物理不可变) 和lit(编译期常量) 四种声明方式,从内存层面保障安全。 - 现代化语法:支持类型推断、Lambda 表达式、模式匹配、单位系统以及灵活的模块化管理。
- 高性能目标:支持栈上对象管理、自动引用计数 (ARC) 与标记清除 (Mark-and-Sweep) 结合的内存管理方案。
def add(i32 a, i32 b) -> i32 = a + b; // 纯函数
fun logic() {
val x = add(1, 2); // 逻辑纯函数可以调用纯函数
}
act main() {
println("Hello Lumos!"); // 副作用函数处理 IO
}
var i32 a = 1; // 完全可变
val i32 b = 2; // 逻辑不可变(允许内部可变性)
imv i32 c = 3; // 物理不可变(只读内存)
lit i32 d = 4; // 编译期常量
项目文档托管在 docs/ 目录下,采用 MkDocs 构建:
- 入门指南 (
docs/begin/): 安装、配置及快速上手。 - 语言参考 (
docs/grammar/): 核心语法、类型系统、函数设计等。 - 词法说明 (
docs/lexical/): 标识符、字面量、注释规范。 - 标准库 (
docs/std/): 核心库 API 设计。 - 编译器实现 (
docs/ast/,docs/ir/): 语法树与中间表示设计。
目前项目处于纯文档设计阶段,欢迎通过提交 Issue 或 Pull Request 的方式对语言特性提出建议。
本项目计划在开发完成后基于 MIT 许可证开源。