Skip to content

Qlang给程序员简单,把复杂留给编译器

一个基于 LLVM 的编译型语言项目,当前已完成 P1-P6 地基并在推进 Phase 7 的 async、runtime 与 Rust 互操作。

当前结论

这个仓库已经不是“只有设计稿的预研空壳”,而是一个真实的 Rust 编译器与工具链工作区。当前已经形成前端、语义、中端、后端、FFI、LSP 与文档站的稳定主干,活跃主线是保守推进的 Phase 7:async、runtime、task-handle lowering 与 Rust 互操作。

当前文档给出四类结论:

  • Qlang 的语言定位、设计原则与核心语法方向
  • 类型系统、内存模型、并发模型与 FFI 方案
  • 编译器、LSP、格式化器、文档系统与仓库结构
  • 细化到阶段出口标准的功能清单与执行路线图

当前实现状态可以概括为:

  • Phase 1 到 Phase 6 的基础能力已经落地
  • Phase 7 已建立最小 runtime/executor、task-handle 类型面、共享 runtime hook ABI skeleton,以及受控的 async staticlib 子集
  • 文档、测试和实现已经开始围绕同一份 phase 文档与回归矩阵收口

建议先看:

核心判断

  1. 对开发者最友好的系统级语言,不应该把复杂度直接外露成一堆生命周期标注、模板噪声和脚手架样板。
  2. 真正难的工作应该由编译器承担,包括所有权推断、逃逸分析、区域分配、诊断建议和增量分析。
  3. 混编不是附加功能,而是语言能否在真实工程中落地的核心能力,所以 ABI、链接、绑定生成和调试体验必须前置设计。
  4. 语言规范、编译器架构、工具链和文档站必须一起设计;先写编译器再补工具链,后面一定返工。

Qlang research repository