55 lines
6.6 KiB
Markdown
55 lines
6.6 KiB
Markdown
# 语言核对地图
|
||
|
||
本页帮助作者定位当前语言规则。每次新增或改动语言断言,读取相关主定义及规范状态;此表不是另一份语言规范。下面的文件位置以文档仓库根目录为基准,直接按主题查阅。
|
||
|
||
## 断言从哪里来
|
||
|
||
| 证据 | 可以据此写什么 | 需要注意 |
|
||
| --- | --- | --- |
|
||
| 用户本次明确确认的语言决定 | 将决定落实为主定义、例子、文法与状态 | 只落实明确决定的范围,相关未定项仍保持未定 |
|
||
| 当前规范状态与主要定义 | 重述已确定约定,解释已收录提案 | 两者冲突时先定位,不选择更方便写例子的版本 |
|
||
| 一个源码示例 | 说明该例在明确条件下的预期效果 | 示例本身不证明全语言默认值或完整规则 |
|
||
| 软件实现行为 | 在用户要求的范围报告观测事实 | 本阶段文档不据此自动确定语言语义 |
|
||
| 外部语言或文档 | 研究解释方法,或说明显式提出的候选设计 | 相似语言的能力不自动属于本语言 |
|
||
|
||
用户授权改文与用户确认语言设计是两件事。可以直接改善清晰度、目录和例子解释;新增名称规则、API、权限或结果状态需要具体依据。
|
||
|
||
## 主题、主定义与易错推断
|
||
|
||
| 主题 | 应读取的文件 | 特别核对 |
|
||
| --- | --- | --- |
|
||
| 定位 | guide/01-overview.md;appendices/application-domains.md | 前后端与 Agent 的统一语言定位;不要写成只服务界面的 DSL |
|
||
| 身份与权限 | guide/02-user-identity.md | workspace 是整体归属与授权边界,注册创建默认个人 workspace;用户承担操作与作者身份;w 编辑资源,x 使用程序及其业务效果,Reader 的执行权与具体授权机制未定 |
|
||
| namespace | guide/03-namespaces.md;appendices/code-storage-and-views.md | workspace handle 加至少一级路径;各层语义一致;整体权限、视图成员和语言可视域分别判断,成员变化不自动改变 key |
|
||
| 导入 | guide/04-program-structure.md | use 后是完整 key;导入不改变归属,不授予权限,不自动执行 |
|
||
| 阶段与生命周期 | guide/05-preflight-and-inflight.md | Preflight 与 inflight 大小写;定义长期存续归入 Preflight,调用与实例存续归入 inflight;长期保存的运行状态不是定义;阶段不等于执行位置 |
|
||
| 词法 | guide/06-lexical-structure.md;appendices/formal-grammar.md | 草案中的标识符与字面量,不外推完整 Unicode、关键字或转义规则 |
|
||
| 资源与类型 | guide/07-types-and-classes.md | 基础常量、统一数值和媒体/GIS 归一化已确定,具体数值精度与编码未定;Number 为类型名提案;名义类型不凭成员相同兼容,class 不自动建表或具有 get |
|
||
| 类型系统 | guide/07-top-level-types/README.md 及各类型页;appendices/specification-status.md | Object ∈ Type、Type ∈ Type、Type ⊆ Object,Object 无父类型;实例化、继承、成员与依赖分别保存;class、trait、record、agent 构造入口自身也是对象,不预先定为保留关键字;平台按类型管理生命周期,atom 与 ID 维护资源图;反射及构造接口待定 |
|
||
| 表达式与变量 | guide/08-expressions-and-bindings.md | 变量可改变资源引用目标,不原地修改基础常量;let 可重绑性与赋值形式未定;结合与优先级不决定所有调用的求值顺序 |
|
||
| 调用 | guide/09-functions-and-calls.md | 普通调用保留值、类型、依赖和业务效果;不能擅自并行、重试或假定纯函数 |
|
||
| 数据 | guide/10-data-access.md | Product.get 是提案;业务 id 与 namespace key 不同;成功、缺失、失败、未就绪不能混写 |
|
||
| 跨端对象与同步 | guide/11-resource-access-and-presentation.md#117-跨端对象与同步;guide/07-top-level-types/README.md;appendices/specification-status.md | 平台对象沿用 Object 与资源 ID;本地副本通过网络取得数据和后续变化,不共享内存或保证瞬时一致;不可变内容更新产生新身份,运行对象按类型改变状态;具体接口、版本、确认与冲突策略未定 |
|
||
| 资源呈现与 UI | guide/11-resource-access-and-presentation.md;guide/12-ui-components.md | 普通函数返回可渲染值;函数查看、输入就绪与执行等待分别处理;顶级类型和构造形式未定,不补写专用 UI 文法或单根限制;官方组件来源未定 |
|
||
| Agent | guide/13-agents.md;appendices/specification-status.md | agent 已确认为语言资源;内部复用共有成员并承担工具、记忆、状态、路由、中断和上下文职责;骨架不代表成员关联、默认 API、委托或权限语法已确定 |
|
||
| REPL | guide/14-repl.md;appendices/specification-status.md#repl | 会话上下文、跨输入绑定、定义暂存和执行记录为提案;定义准备与调用执行分别处理,查看结果不重放业务调用;不擅自确认顶层文法、控制命令、原生 Session、并发或恢复策略 |
|
||
| 外部语言执行模型与框架比较 | appendices/language-keywords.md;appendices/language-runtime-lifecycles.md;appendices/framework-runtime-lifecycles.md | 区分语言规范、实现、宿主和框架;明确生命周期实体、入口、上下文、调度及清理;外部比较与执行契约研究不自动确认 Endorphin 的宏微任务、原生 Task、钩子或恢复 API |
|
||
|
||
所有主题同时核对 appendices/specification-status.md。涉及词形、产生式或组合约束时再核对 appendices/formal-grammar.md;纯措辞修改不必重读全书。
|
||
|
||
## 三种状态如何落笔
|
||
|
||
**已确定约定**直接陈述事实,例如“use 引用一个完整 namespace key”。精确链接指向主定义,其他页按需要作短说明。
|
||
|
||
**已收录提案**可以清楚说明提案内部的规则。在章节入口或第一次关键例子旁标明状态,不把每句都改成“可能”“也许”。
|
||
|
||
**未定义边界**写明缺少的维度,例如“别名和同名冲突的名称查找形式尚未定义”,并链接状态位置。不要用含糊的“待完善”遮住会影响例子合法性的缺口。
|
||
|
||
## 处理冲突
|
||
|
||
先抄出两处冲突的具体断言,分别找到状态或用户决定依据。若只是旧写法残留,按明确决定修正并搜索同类残留;若实际需要新语义,完成不依赖该选择的部分,向用户提出最小必要决定。
|
||
|
||
例如,将错误的 use 点号分隔改回冒号是落实已确定规则;决定 workspace handle 是否大小写敏感则是新增语言决定。两者不应采用同一种处理方式。
|
||
|
||
[语义契约](semantic-contracts.md) · [语义变更任务](../tasks/TASK-06.md)
|