# cz **Repository Path**: cz_lang/cz ## Basic Information - **Project Name**: cz - **Description**: Cz是一个结合了 Zig 的显式分配器、Erlang 的 Actor 隔离和 C3 的模块化的实验性编程语言。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-08 - **Last Updated**: 2025-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: cz, 编程语言, 现代编程语言 ## README # Cz Programming Language **Cz** 是一个结合了 Zig 的显式分配器、Erlang 的 Actor 隔离和 C3 的模块化的实验性编程语言。 ## 核心特性 - ✅ **显式分配器**:所有内存分配都需要显式传入分配器 - ✅ **Actor 隔离**:每个 Actor 拥有独立的堆和消息队列 - ✅ **模块化**:清晰的模块系统和命名空间 - ✅ **无 GC**:确定性内存管理,适合实时系统 - ✅ **并发安全**:通过消息传递避免数据竞争 ## .cz 文件格式 🆕 **Cz 现在支持 `.cz` 文件格式!** ```cz // hello.cz - 真正的 Cz 语言文件 import std; import cz.actor; actor Greeter { name: string, receive { Greet => { std.debug.print("Hello, {s}!\n", .{self.name}); }, } } pub fn main() !void { var greeter = try actor.spawn(Greeter, allocator, "World"); try greeter.send(.Greet); } ``` **编译 .cz 文件**: ```bash czc hello.cz # 编译为可执行文件 czc hello.cz -O3 # 优化编译 ``` 查看 [.cz 文件格式文档](docs/CZ_FILE_FORMAT.md) 了解详情。 ## 编译器架构 🆕 **双后端支持**: ### 1. Zig 后端(默认) ```bash czc hello.cz ``` - .cz → .zig → LLVM → 机器码 - 快速开发 - 完整的 Zig 生态 ### 2. LLVM 后端 ```bash czc hello.cz --llvm ``` - .cz → LLVM IR → Clang → 机器码 - 直接生成 LLVM IR - 使用 Clang 优化 - 与 C/C++ 无缝互操作 ### 3. Cranelift 后端(新增!⚡) ```bash czc hello.cz --backend=cranelift ``` - .cz → Cranelift IR → 机器码 - **编译速度极快**(比 LLVM 快 10-100x) - 适合开发模式和快速迭代 - 良好的代码质量(80-90% LLVM 性能) **优化级别**: ```bash czc -O0 hello.cz --llvm # Debug czc -O2 hello.cz --llvm # Standard czc -O3 hello.cz --llvm # Aggressive czc -Os hello.cz --llvm # Size ``` **生成 LLVM IR**: ```bash czc hello.cz --emit=llvm-ir ``` 查看 [LLVM 后端文档](docs/LLVM_BACKEND.md) 和 [编译器架构文档](docs/COMPILER_ARCHITECTURE.md) 了解详情。 ### MLIR-AIR 优化 🆕🔥 **使用 MLIR 进行高级循环优化!** ```bash # 使用 MLIR 优化 czc matrix.cz --mlir --mlir-opt=aggressive # 生成优化后的 MLIR czc matrix.cz --emit=mlir-opt ``` **优化技术**: - ✅ 循环融合(Loop Fusion) - ✅ 循环平铺(Loop Tiling) - ✅ 循环展开(Loop Unrolling) - ✅ 自动向量化(SIMD) - ✅ 自动并行化(多核) - ✅ 多面体优化(Polyhedral) **性能提升**: - 矩阵乘法:12.5x - 图像处理:16.7x - 科学计算:5-10x 查看 [MLIR 优化文档](docs/MLIR_OPTIMIZATION.md) 了解详情。 ### Cranelift 后端 🆕⚡ **极速编译,快速迭代!** ```bash # 使用 Cranelift(编译快 10-20x) czc main.cz --backend=cranelift -o main # 开发模式(自动使用 Cranelift) czc main.cz --mode=dev -o main # 发布模式(自动使用 LLVM) czc main.cz --mode=release -o main ``` **性能对比**: ``` 编译速度: LLVM: 120s Cranelift: 6s (20x faster!) 运行性能: LLVM: 100% Cranelift: 80% (足够好!) ``` **优势**: - ⚡ 编译速度极快(10-20x) - 🔄 快速迭代开发 - 💾 内存使用少 - 🚀 完美的开发体验 查看 [Cranelift 后端文档](docs/CRANELIFT_BACKEND.md) 了解详情。 ### Mold 高速链接器 🆕⚡ **使用 Mold 加速链接!** ```bash # 使用 Mold 链接(3-10x 更快) czc main.cz --use-mold # 或指定链接器 czc main.cz --linker=mold ``` **性能对比**: ``` GNU ld: 45s LLD: 15s Mold: 5s (9x faster!) ``` **优势**: - ⚡ 极快的链接速度 - 🔄 并行链接 - 💾 内存高效 - 🚀 完美的开发体验 查看 [Mold 链接器文档](docs/MOLD_LINKER.md) 了解详情。 ## 快速开始 ```bash # 运行 Counter 示例 d:\zig\zig.exe build run # 运行 Chat Room 示例 d:\zig\zig.exe build chat # 运行 Exokernel 演示 d:\zig\zig.exe build exo # 运行 DBOS 演示(数据库操作系统) d:\zig\zig.exe build dbos # 运行测试 d:\zig\zig.exe build test ``` ## 模式匹配 (match-case) 🆕 **Python 风格的模式匹配!** ```cz // 基础匹配 fn describe_number(n: i32) void { match n { 0 => print("zero"), 1 => print("one"), x if x < 0 => print("negative"), _ => print("other"), } } // 联合类型匹配 const Result = union(enum) { ok: i32, err: []const u8, }; fn handle_result(result: Result) void { match result { .ok(value) => print("Success: {d}", value), .err(msg) => print("Error: {s}", msg), } } // Actor 消息匹配 actor Worker { receive { msg => match msg { .start => self.state = .running, .task(priority) if priority > 5 => self.process_urgent(), .task(_) => self.process_normal(), _ => print("Unknown"), }, } } ``` 查看 [模式匹配文档](docs/PATTERN_MATCHING.md) 了解详情。 ## 语言示例 ```cz // 模块定义 module network.tcp; import std.allocator; import std.actor; // Actor 定义 actor TcpServer { port: u16, connections: List(Connection), // 初始化时指定分配器 pub fn init(alloc: Allocator, port: u16) !Self { return Self{ .port = port, .connections = try List(Connection).init(alloc), }; } // 消息处理 receive { Connect(addr: Address) => { const conn = try self.connect(addr); try self.connections.append(conn); }, Disconnect(id: u32) => { self.connections.remove(id); }, } } // 使用 pub fn main() !void { var gpa = std.heap.GeneralPurposeAllocator(.{}){}; defer _ = gpa.deinit(); const alloc = gpa.allocator(); // 创建 Actor var server = try actor.spawn(TcpServer, alloc, .{8080}); defer server.stop(); // 发送消息 try server.send(.{ .Connect = addr }); } ``` ## 项目结构 ``` CZ/ ├── src/ │ ├── runtime/ # Cz 运行时 │ ├── actor/ # Actor 系统实现 │ ├── allocator/ # 分配器抽象 │ └── std/ # 标准库 ├── examples/ # 示例代码 └── build.zig # 构建脚本 ``` ## 设计理念 Cz 的设计目标是创建一个适合构建高性能、高可靠性系统的语言: 1. **显式优于隐式**:内存分配、错误处理都是显式的 2. **隔离优于共享**:Actor 之间不共享内存 3. **消息优于锁**:通过消息传递实现并发 4. **编译时优于运行时**:尽可能在编译时发现错误 ## 操作系统开发 🆕 **Cz 现在可以用于操作系统开发!** 查看 [OS 开发指南](docs/OS_DEVELOPMENT.md) 和 [Exokernel 设计](docs/EXOKERNEL.md) 了解详情。 **核心能力**: - ✅ Freestanding 模式(裸机运行) - ✅ 硬件抽象层(VGA、串口、定时器) - ✅ 内核 Actor 调度器 - ✅ 物理内存管理 - ✅ Actor 独立内存池 - ✅ **Exokernel 架构**(新增!) **Exokernel 示例**: ```zig // 注册多个 LibOS var kernel = try Exokernel.init(allocator, 16 * 1024 * 1024); _ = kernel.register_libos("BatchOS", batch_os_main); _ = kernel.register_libos("RTOS", rtos_main); _ = kernel.register_libos("DatabaseOS", db_main); // 能力系统保护资源 const cap = kernel.syscall_alloc_page(libos_id); ``` **适用场景**: - **Exokernel**(极致性能和灵活性) - 微内核操作系统 - 嵌入式 RTOS - IoT 设备固件 - 教学用 OS - 高性能数据库系统 ## DBOS - Database Operating System 🆕🔥 **基于 Asterinas 框内核架构的数据库操作系统!** 查看 [DBOS 架构文档](docs/DBOS_ARCHITECTURE.md) 了解详情。 **核心创新**: - ✅ **Cz Exokernel** 作为可信基(TCB ~1000 行) - ✅ **Safe Rust DBMS** 作为安全部分(100% Safe Rust) - ✅ 零拷贝 I/O - ✅ 自定义内存管理 - ✅ 极致性能 + 极致安全 **架构**: ``` Applications (SQL) ↓ Safe Rust DBMS (Untrusted) ↓ Cz Exokernel (TCB - Trusted) ↓ Hardware ``` 运行演示: ```bash d:\zig\zig.exe build dbos ``` ## czpm - 包管理器 🆕 **现代化的包管理器,结合 Cargo 和 pnpm 的优点!** 查看 [czpm 文档](docs/CZPM.md) 了解详情。 **核心特性**: - ✅ **TOML 配置**(`package.cz`) - ✅ **硬链接**(节省磁盘空间) - ✅ **Workspace**(Monorepo 支持) - ✅ **内容寻址**(基于哈希) - ✅ **快速安装**(比 npm 快 10x) **使用示例**: ```bash # 创建项目 czpm init my-project # 添加依赖 czpm add actor-runtime@1.0.0 # 安装(使用硬链接) czpm install # 构建和运行 czpm build czpm run ``` ## 与其他语言对比 想知道 Cz 与 Zig、C3、Nim、Rust、V 的区别? 查看 [语言对比文档](docs/LANGUAGE_COMPARISON.md) 了解详细对比。 **Cz 的独特优势**: - ✅ 唯一内置 Actor 模型的系统语言 - ✅ 唯一支持 Exokernel 的语言 - ✅ 唯一有 DBOS 框架的语言 - ✅ 唯一使用硬链接的包管理器 ## 🚀 快速实用化计划 🆕 **目标:3 个月内让 Cz 可以实际使用!** 查看 [实用化行动计划](MAKING_IT_USABLE.md) 了解详情。 ### 核心策略 1. **转译到 Zig**(不从零实现编译器) 2. **包装 Zig std**(不重复造轮) 3. **复用现有工具**(不全部自己做) ### 时间表 **Month 1**:编译器可用 - ✅ 词法/语法分析器(已完成骨架) - 🔄 Actor 语法转换 - 🔄 基础测试 **Month 2**:标准库完整 - ⏳ 文件 I/O - ⏳ TCP 网络 - ⏳ JSON 解析 - ⏳ HashMap/HashSet **Month 3**:工具链就绪 - ⏳ czpm(包管理) - ⏳ czfmt(格式化) - ⏳ 基础 LSP ### 立即开始 ```bash # 构建编译器 cd czc zig build # 测试示例 zig build run -- ../examples/simple.cz -o simple ./simple ``` 查看 [实施指南](IMPLEMENTATION_GUIDE.md) 开始贡献! ## 自举计划(长期) **Cz 也在规划自举(Self-Hosting)!** 查看 [自举计划文档](docs/SELF_HOSTING.md) 了解详情。 **时间表**:18 个月实现完全自举(在实用化之后) ## 开发状态 🚧 实验阶段 - 核心功能已实现: - ✅ Actor 运行时 - ✅ 消息传递 - ✅ 内存管理 - ✅ OS 开发支持 - ✅ Exokernel 架构 - ✅ DBOS 框架 - ✅ czpm 包管理器 - ✅ .cz 文件格式 - 🔄 自举编译器(进行中)