设计
语言设计
本部分包含 Dujie 编译引擎的设计文档,面向编译器开发者和语言设计者。
文档约定
- 新的语言设计和语义细则先写在
01.design 00.guide只承接已经收敛、适合面向用户说明的内容- 如果两边内容冲突,应先以
01.design中的最新设计为准,再回写00.guide
阅读顺序
第一次阅读当前语言规范时,建议优先按以下顺序进入:
其余文档按主题补充阅读。
目录
现行规范
- 文档分层约定 - 设计文档和用户文档的职责边界
- 类型系统总纲 - 类型系统的讨论边界、术语和拆分方式
- 泛型系统 - 泛型参数、约束和推导的独立设计文档
- 值语义与共享语义 - 赋值、传参、返回和修改的语言级语义
- 函数与调用 - 函数声明、参数模型、默认值和调用规则
- 表达式与语句 - 字面量、控制流、运算、推导边界和语句模型
- 模块系统 - 模块、导入导出、路径规则和入口约束
- 渲染内建 -
widget、组件函数和main/element/text/fragment/comment - Any 设计 -
any的定位、边界、is收窄和动态入口语义 - 内建类型表面 - 各内建类型公开的方法、属性和点调用边界
- 内建函数 - 当前对外可见的全局内建函数与构造形式
- 内建结构体与运行时类型 - 当前没有哪些公开内建结构体,以及运行时类型边界
实现补充
历史记录
- 结构体设计 - 历史实现探索:结构体的 Arc 包装方案
- comparable 约束设计 - 历史设计记录:旧的 comparable 约束方案