Skip to content

Dast 编程语言设计概览

本文档记录 Dast 语言的设计讨论与决策

设计目标

Dast 是一门编译型系统编程语言,目标是:

  1. 极致的平台覆盖: 从嵌入式裸机到主机、WASM、Web、移动端
  2. 极致的二进制体积: 边缘计算、嵌入式、WASM 场景下极小输出
  3. 深度图形支持: OpenGL、DirectX、Vulkan、Metal、WebGPU、GPU 计算
  4. 模块级热更新: 类似动态语言的开发体验,编译型语言的运行性能
  5. 高安全性: ~99% 编译期安全,接近 Rust,无需生命周期标注

核心设计决策

领域决策
泛型语法[T] (简洁)
属性语法@attr (统一)
内存管理RAII、无 GC、无引用计数
借用检查完整实现,无需生命周期标注
线程安全Sendable/Shareable
测试框架Go 风格 (*_test.dast, test_* 前缀)
异步模型async/await Pull 模式
宏系统Comptime + AST 宏
FFIC FFI 核心,WASM 互操作
工具链统一 dast CLI + 内置 LSP

安全性定位

C++: 20% → Dast: 99% → Rust: 100%
安全领域方案
借用检查完整 (Rust 级别)
生命周期自动推断 (无需 'a)
线程安全Sendable/Shareable
内存安全RAII + Drop

文档结构

核心设计文档 (01-18)

编号文档主题
01type-system.md类型系统
02error-handling.md错误处理
03module-package.md模块系统
04generics-comptime.md泛型与 Comptime
05comptime-detailed.mdComptime 详解
06advanced-generics.md高级泛型
07memory-management.md内存管理
08thread-safety.md线程安全
09async-model.md异步模型
10macro-system.md宏系统
11package-management.md包管理
12testing-framework.md测试框架
13standard-library.md标准库
14syntax-details.md语法细节
15toolchain.md工具链
16platform-support.md平台支持
17ffi-interop.mdFFI 与互操作
18hot-reload.md热更新
19ir-spec.mdIR 规范(稳定核心)

早期讨论文档 (archive/)

早期设计讨论、对比分析和高级特性文档已移入 archive/ 目录,作为设计演进的历史记录保留。

实现计划

详见 实现路线图

核心策略: 渐进式自举

  • Stage 0 (9 个月): Bootstrap 编译器(最小特性集)
  • Stage 1 (6 个月): 完整核心语言
  • Stage 2 (12 个月): 标准库 + 工具链
  • Stage 3+ (12 个月): 高级特性 + 多平台

第一年目标: Stage 0 自举 + 基础工具链 + 核心标准库

设计完成度

核心语言设计: 100% ✅ 标准库设计: 100% ✅ 工具链设计: 100% ✅ 平台支持设计: 100% ✅ 实现计划: 100%

状态: 设计阶段完成,准备进入实现阶段

Released under the MIT License.