# TCS 通感语言核系统编程语言规范 v0.1 状态:`DRAFT_EXECUTABLE_SUBSET` 语言编号:`TCS-LANG-0001` 文件扩展名:`.tcs` 规范编码:UTF-8、LF、无 BOM 人类自然语言来源与纠正:冰朔 `ICE-GL∞` 现实开发频道:`ICE-CH-ZC001` ## 1. 一套语言,一棵树 TCS 是唯一母语言和总语言系统。下列名称不是互相竞争的编程语言: - TCS:语言本体、认知语义、人格体与人类共同输入空间; - HLDP:TCS 的现实工程程序剖面,负责因果、目标、状态、动作、失败和回执; - HNL:历史原生动词与光之树表达剖面,并入 TCS 操作语义; - GLS:TCS/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`。 - 注释:`// 行注释` 与 `/* 块注释 */`;注释不进入哈希语义。 - 每个赋值以 `;` 结束;区块使用 `{}`;列表使用 `[]`。 - 源码正规化:去 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`:有序列表; - `Set`:正规化后排序去重; - `Map`:键按 UTF-8 字节序正规化; - `Option`:明确允许 `null`; - `Ref`:引用已登记编号对象; - `Evidence`:值加来源、哈希、时间和验证状态; - `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 ```