7.5 KiB
7.5 KiB
规范状态
本附录记录语言设计的确定程度与尚未定义的边界。它用于理解设计稿,不代表软件实现进度或可执行性保证。
已确定约定
| 主题 | 已确定内容 |
|---|---|
| 语言定位 | 前后端共用的云原生编程语言,UI 是应用领域之一 |
| 代码归属 | 每段代码属于唯一用户名和至少一级 namespace |
| 用户身份 | 使用唯一 handle 定位,不用显示名替代 |
| namespace | 各层语义一致;以外部 key 检索,不在正文声明自身归属 |
| key 形式 | 用户名:namespace路径,冒号分隔用户与路径,点号分隔层级 |
| use | 引用完整 namespace,不附加选择性名称列表 |
| 代码组织 | 独立代码段存储在 S3,由索引组装可见代码视图,不采用源码文件 module 制 |
| 数据结构目标 | 用 class 表达共享结构,通过类取得数据的具体形式另行定义 |
| 类型兼容 | 用户声明的类型按声明身份区分,不仅凭字段或方法相同建立兼容或能力实现关系;不采用结构类型兼容 |
| 调用目标 | 普通逻辑调用表达输入、结果与依赖,系统组织执行 |
| 官方组件 | 官方 UI 组件与用户库内容分别定义 |
| 阶段命名 | 执行准备与检查阶段为 Preflight,运行阶段为 inflight;名称本身不增加源码关键字 |
| 执行方向 | 平台解释执行代码,不要求独立构建步骤或字节码转译;Preflight 检查并建立关联索引 |
| 界面表达 | 普通函数返回可渲染值表达界面,不采用独立 scene 声明或 render 块 |
| 资源访问 | 客户端可查看获准访问的资源,依据当前资源或调用结果的类型选择呈现方式 |
| 函数查看与调用 | 必填参数未就绪时查看函数本身;输入满足调用要求后可调用并呈现结果;执行等待不退回为定义查看 |
| 跨端使用 | 函数调用与 hook 关联由平台组织执行和通信,应用直接使用符合声明类型的结果与更新 |
收录的语法提案
| 提案 | 正文位置 | 说明 |
|---|---|---|
| 词法与字面量 | 第 6 章 | 本书统一采用的标识符、字符串、数字和符号形式 |
| 类字段与类型标注 | 第 7 章 | class 目标已确定,字段和类型体系仍为具体写法提案 |
| 表达式与 let | 第 8 章 | 基础运算、成员访问与局部绑定 |
| function 与 return | 第 9 章 | 函数签名、基本函数体与调用组合 |
| Product.get | 第 10 章 | 读取体验提案,不是 class 自动附带的 API |
| 组件效果 | 第 12 章 | 参数、布局与默认值的效果提案;构造表达式尚未定义 |
程序声明组合与形式文法同样属于设计稿。正文中的陈述定义这些提案内部的用法,不将其确定程度提升为最终规范。
身份与权限
尚未定义:
- 用户名的字符、长度、大小写、Unicode 归一化及身份范围扩展。
- handle 改名、旧名称复用、历史引用稳定性及账号生命周期。
- 代码的默认公开性、读取与执行权限,以及 namespace 权限继承。
- 协作、Agent 委托、操作身份记录与归属转移。
定位信息不构成授权,是这些规则必须保留的边界。
引用与代码视图
尚未定义:
- 代码段的语法边界、视图成员范围和下级 namespace 的纳入方式。
- use 的作用范围、声明可见性、限定名、别名与同名冲突。
- 视图顺序、版本选择、成员一致性及编辑操作映射。
- key 的传递编码和索引关联机制。
正文跨 namespace 示例采用目标声明可见、名称可直接解析且无冲突的条件;该条件不代替正式名称查找规则。
声明与类型
尚未定义:
- 程序入口、空代码视图、客户端访问所用的定位形式与顶层绑定。
- 函数本身的完整类型表达、值形式与查看信息范围。
- 完整基础类型、数值范围、可选值、泛型及类型转换。
- 类构造、方法、默认值、继承和字段可见性。
- 显式能力实现、类型兼容与转换关系的声明形式,以及类型推断规则。
- 代码更新和不同版本之间的类型身份比较规则。
- 重复声明、完整控制流、可变性、赋值和作用域细节。
本文简单函数体仅收录 let 与末尾 return,不意味着整门语言只允许这两种语句。
词法与表达式
尚未定义:
- 完整保留字集合、Unicode 版本与字符类别边界。
- 换行字符、字符串扩展转义、更多字面量和运算符。
- 数值溢出、除法、隐式转换与所有调用参数的求值顺序。
正文中同级二元算术运算的组合顺序属于表达式提案,不规定所有调用的执行顺序。
调用与数据
尚未定义:
- 显式等待、失败处理、缺失值、取消和超时的源码形式。
- 数据读取成员的声明、参数与结果类型。
- 一次结果、持续结果及其更新语义。
- hook 的源码形式、触发或订阅关系、生命周期、关联解除和更新范围。
- 带业务修改的调用顺序、重复执行限制与失败行为。
- 更新代码时已有调用使用哪个版本。
正常结果必须符合声明,未就绪或失败不能伪造为成功结果。Product.get 示例只展示成功路径。
UI
尚未定义:
- 官方组件库的 key、显式引用形式与名称可见性。
- 普通表达式中构造界面值的形式、参数传入方式及子节点组合。
- 界面结果的根结构、集合形式和类型约束;不沿用 render 单根文法。
- 界面计算中的调用、状态、数据绑定、事件与更新。
- 布局单位、参数范围、负数、显式尺寸、约束与溢出。
- 主题、样式、文字测量和其他组件。
正文的官方组件示例使用结构示意,不定义调用语法,也不承诺免导入使用。
资源访问与呈现
资源定位、函数本身与调用结果的区别,以及参数就绪和执行等待的边界,主要定义见资源访问与呈现。
保留待讨论:
- 顶级类型的名称、集合,以及界面、数据、代码与媒体的类别边界。
- 顶级类型采用继承、接口、协议或其他机制的关系与声明形式。
- 可渲染类型的契约、普通类型的默认展示方式及自定义呈现。
- 同一资源具有多种呈现能力时的选择规则及未知类型的处理方式。
- 参数填写、默认或可省略参数、平台提供参数与访问触发调用的具体规则。
- 资源查看、显式调用、可执行入口与具有业务修改效果的操作之间的界限。
- 图片、字体等资源的标识、归属与类型约定。
顶级类型尚未纳入基础类型表或形式文法;其定义待定不影响已确定的访问与结果呈现方向。
Agent
Agent 是规划应用领域。声明、能力、工具、上下文、任务、生命周期、权限及模型驱动行为的边界尚未定义。
规范范围
本文定义源码及应有的语言效果。云端实体、持久化类、自动建表、通信、缓存、部署和编排实现不在本阶段规范中。
S3 约定仅用于代码存储,不规定业务数据后端。平台负责跨端执行与通信的约定不指定传输协议、类型编码、调度算法或部署产物。