Skip to content

plos-clan/Lumos

Repository files navigation

Lumos (光耀) 实验性编程语言

[!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 许可证开源。

About

Lumos programming language

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors