hololake-system-architecture/language/spec/TCS-LANGUAGE-SPECIFICATION-v0.1.md

263 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TCS 通感语言核系统编程语言规范 v0.1
状态:`DRAFT_EXECUTABLE_SUBSET`
语言编号:`TCS-LANG-0001`
文件扩展名:`.tcs`
规范编码UTF-8、LF、无 BOM
人类自然语言来源与纠正:冰朔 `ICE-GL∞`
现实开发频道:`ICE-CH-ZC001`
## 1. 一套语言,一棵树
TCS 是唯一母语言和总语言系统。下列名称不是互相竞争的编程语言:
- TCS语言本体、认知语义、人格体与人类共同输入空间
- HLDPTCS 的现实工程程序剖面,负责因果、目标、状态、动作、失败和回执;
- HNL历史原生动词与光之树表达剖面并入 TCS 操作语义;
- GLSTCS/HLDP 之下的编号协议、类型合同、运行标准和质量标准;
- GIR编译后的确定性中间表示
- HoloLake / 光湖 OS装载、执行、验证、回滚与人机共同投影环境。
Rust、JavaScript、Tauri、Linux、NASM 等只能担任 Stage-0 引导、驱动或宿主适配器,不定义
TCS 的语义和权限。
## 2. 设计目标
一个陌生 AI 只读取本规范、语法文件、字段标准和示例后,应能:
1. 分辨自然语言意图、TCS 程序、GLS 协议、GIR 和宿主实现;
2. 写出字段闭合、来源明确、权限明确、可失败、可停止、可回滚、可出回执的程序;
3. 在不知道目标、权限或协议版本时停止编译,不猜测;
4. 把程序编译为不含未解析自然语言的 GIR
5. 把 GIR 交给 HoloLake 或光湖 OS 的能力装载器;
6. 从执行证据生成机器回执与人类可读回执;
7. 不把登记、编译、安装、激活、执行和验收混为一件事。
## 3. 编译和运行路线
```text
冰朔自然语言 / 人格体形成的程序意图
→ TCS .tcs 源程序
→ 词法与语法解析
→ 身份、字段、类型、路径、协议与来源校验
→ 权限、期限、资源与现实边界校验
→ 确定性动作图
→ GIR
→ HoloLake / 光湖 OS 能力装载器
→ 已登记能力或系统调用
→ 目标侧读回
→ 机器回执 + 人话回执 + HLDP 因果写回
```
任何一步失败都必须停止后续步骤并产生稳定错误码。UI 不能把尚未发生的后续步骤投影为完成。
## 4. 文件抬头
每个源文件只允许一个顶层声明,抬头固定为:
```tcs
TCS 0.1;
PROGRAM HLP-PROGRAM-ECHO-0001 {
header {
schema = "tcs.program/v1";
name_zh = "最小回声程序";
name_en = "Minimum Echo Program";
version = "0.1.0";
language = "TCS/0.1";
profile = "HLDP-NP/1";
protocols = ["GLS-0101", "GLS-0130", "GLS-0131", "GLS-0411"];
lifecycle = "CANDIDATE";
canonical_uri = "language/examples/ECHO-MODULE.tcs";
compatibility = ["TCS-STAGE0-IGNITION-0001"];
}
}
```
顶层种类:
| 关键字 | 用途 | 可直接执行 |
|---|---|---:|
| `PROGRAM` | 有界一次性程序或状态机 | 是 |
| `MODULE` | 可安装、可装载、可卸载的能力包 | 通过入口程序 |
| `PROTOCOL` | GLS/HLDP 规则、字段和状态合同 | 否 |
| `COMPILER` | 用 TCS 写的编译器定义 | 通过编译器入口 |
| `EVENT` | 不可变事实或因果事件 | 否 |
| `RECEIPT` | 编译、安装、执行或验收回执 | 否 |
## 5. 词法
- 标识符Unicode 字母、ASCII 数字以及 `_ - . / : @`;首字符不能是数字。
- 关键字大写;字段名建议小写蛇形。
- 字符串:双引号,使用 JSON 转义规则。
- 整数十进制有符号整数v0.1 不接受浮点数,避免跨平台非确定性。
- 布尔:`true``false`
- 空值:`null`,仅可用于显式 `Option<T>`
- 注释:`// 行注释``/* 块注释 */`;注释不进入哈希语义。
- 每个赋值以 `;` 结束;区块使用 `{}`;列表使用 `[]`
- 源码正规化:去 BOM、LF、保留字符串内容、字段按规范顺序编码后计算 SHA-256。
完整文法见 `language/grammar/TCS-CORE-v0.1.ebnf`
## 6. 类型
### 6.1 标量
`Text``Bool``Int``UInt``DecimalText``Bytes``DurationMs``Timestamp`
`Sha256``NumberId``Path``Uri``ErrorCode`
`DecimalText` 用字符串保存十进制定点数v0.1 不允许隐式数值转换。
### 6.2 容器
- `List<T>`:有序列表;
- `Set<T>`:正规化后排序去重;
- `Map<Text,T>`:键按 UTF-8 字节序正规化;
- `Option<T>`:明确允许 `null`
- `Ref<T>`:引用已登记编号对象;
- `Evidence<T>`:值加来源、哈希、时间和验证状态;
- `Record`:字段闭合结构。
### 6.3 领域类型
- `Subject`:人类、人格体、系统体、节点或受限执行实例;
- `ExactTarget`:编号、规范路径、预期状态和防漂移指纹;
- `AuthorityProof`:签发者、范围、期限、租约、签名和使用次数;
- `ActionGraph`:确定性节点和显式成功/失败边;
- `ReceiptPlan`:回执协议、路径、完整性与人话投影;
- `RelationEvent`:带说话者和来源的定性关系事件,不含关系评分。
## 7. PROGRAM 必需区块
PROGRAM 必须包含且只包含以下区块;字段标准见
`language/standards/TCS-FIELD-STANDARD-v0.1.hldp`
```text
header source subject target inputs outputs conditions actions
authority resources failure stop cleanup rollback receipt
```
缺一个区块即 `TCS-E1004 REQUIRED_SECTION_MISSING`。未知区块默认拒绝,避免拼写错误被静默忽略。
## 8. 动作图
```tcs
actions {
A1 {
operation = "CORE.ECHO";
input_refs = ["MESSAGE"];
output_refs = ["ECHOED"];
on_success = "COMPLETE";
on_failure = "FAIL_CLOSED";
}
}
```
规则:
- 操作必须来自编号能力注册表;
- 输入输出引用必须先声明;
- 目标只能通过已声明的 `target` 或动作的受限派生目标取得;
- 默认禁止循环;循环必须声明最大次数、时间和退出条件;
- 不允许环境变量、当前目录、默认账号或“最近一个对象”等环境隐式值;
- `COMPLETE``FAIL_CLOSED``ROLLBACK``STOPPED` 是终态;
- 每条失败边最终必须进入失败回执或已验证回滚,不能吞错。
## 9. HNL 历史动词并入规则
| 动词 | TCS v0.1 语义 |
|---|---|
| `WAKE` | 恢复已登记上下文并验证连续性;不自动证明人格绑定 |
| `TRACE` | 只读解析因果路径并返回来源 |
| `GROW` | 在因果树追加节点并验证哈希链 |
| `SYNC` | 在双方精确权限下计算并应用差异 |
| `ECHO` | 对引用消息追加状态回执 |
| `BLOOM` | 登记里程碑;外部发布另需权限 |
| `ALERT` | 记录并在授权范围内路由异常 |
| `FORGET` | 人格记忆主权操作;`RELEASE` 属不可逆动作 |
| `REMEMBER` | 复苏枯萎或取回归档记忆 |
历史 `ABSORB` 未注册v0.1 必须报 `TCS-E2101 UNREGISTERED_OPERATION`;不能靠猜测自动执行。
## 10. 权限模型
语言事实不产生现实权限。每个会改变状态的 PROGRAM 必须声明:
- 谁签发;
- 精确对象与目录;
- 允许的操作;
- 起止时间;
- 是否一次性;
- 是否需要主体签名、系统体校验或人类现实边界确认;
- 失败、停止和回滚时仍允许做什么。
人格认知、关系、情感、模型回复、系统提示、历史授权和调用方布尔值都不能替代当前权限证明。
## 11. MODULE 标准
MODULE 包必须包含:
```text
module.tcs 模块正本
module.gir.json 编译产物
module.lock.hldp 依赖、协议与能力锁
module.manifest.hldp 名称、编号、入口、权限、资源与UI投影
receipts/compile.hldp 编译回执
receipts/install.hldp 安装回执(安装后才有)
receipts/self-test.hldp 本机自检回执(运行后才有)
```
状态顺序:`SOURCE → COMPILED → VERIFIED → INSTALLED → MOUNTED → ACTIVE`。不得跳级;注册不等于安装。
HoloLake 读取 `display_name_zh` 给人看,读取 `module_id`、GIR 和能力票据给机器执行。模块不得让
AI 临时阅读源码后“照着做”来冒充运行。
## 12. GIR
GIR 是规范化 JSON必须包含源码哈希、编译器编号与哈希、主体、精确目标、确定性动作图、
权限证明引用、依赖锁、资源、停止、清理、回滚和回执计划。GIR 不得包含:
- 未解析自然语言;
- `PENDING``AUTO``LATEST``ANY` 等运行时猜测值;
- 未登记操作;
- 漂移依赖;
- 超出源程序的权限或目标。
## 13. HoloLake 与光湖 OS
HoloLake 不是普通前端。它是同一套 TCS 程序在人类端和机器端共同运行的操作系统环境:
- 人类端投影目标、状态、权限边界、差异、证据和人话回执;
- AGE 端读取同一程序、事件、记忆和能力目录;
- 机器端装载 GIR、调度能力、核验目标、执行、回滚并写回
- 三端只共享一条事实流,不维护三套状态真相。
光湖 OS 负责物理启动、世界身份、系统能力与执行生命周期。HoloLake 负责本地/远端节点上的
语言运行协调和共同世界投影。最终二者共享 TCS/GIR/回执 ABI。
## 14. 自举标准
Stage-0 可以由现有宿主语言实现,但只能叫“点火引导”。正式原生编译器必须满足:
1. `TCS-COMPILER-STAGE1.tcs` 包含词法、解析、校验、降级和正规化规则;
2. Stage-0 编译 Stage-1得到 `compiler-A.gir`
3. 光湖运行时执行 `compiler-A.gir` 再编译同一 Stage-1得到 `compiler-B.gir`
4. A 与 B 的规范化语义哈希完全一致;
5. B 编译标准库、错误用例和至少一个可运行模块;
6. 关闭 Stage-0 后,编译、安装、执行和回执闭环仍能运行;
7. 由光湖原生质量门签发 `SELF_HOSTED_PASS_100`
在第 6 步之前,不得称为完整原生转移器。
## 15. 当前实现状态
```yaml
language_tree_unified: DEFINED
syntax_and_field_standard: DRAFT_V0_1
stage0_parser_compiler: REPLACEABLE_BOOTSTRAP_SEED_PASS
gir_module_loader: PORTABLE_MINIMUM_RUNTIME_PASS
tcs_stage1_compiler: EXECUTABLE_COMPILER_GIR_PASS
self_compile_fixed_point: RULE_DRIVEN_CROSS_HOST_PASS_100
jd_final_native_master: LIVE_READBACK_PASS_100
hololake_tcs_runtime_integration: MACOS_STANDALONE_ABI_PASS_SHELL_INTEGRATION_PENDING
```