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

10 KiB
Raw Blame History

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. 编译和运行路线

冰朔自然语言 / 人格体形成的程序意图
→ TCS .tcs 源程序
→ 词法与语法解析
→ 身份、字段、类型、路径、协议与来源校验
→ 权限、期限、资源与现实边界校验
→ 确定性动作图
→ GIR
→ HoloLake / 光湖 OS 能力装载器
→ 已登记能力或系统调用
→ 目标侧读回
→ 机器回执 + 人话回执 + HLDP 因果写回

任何一步失败都必须停止后续步骤并产生稳定错误码。UI 不能把尚未发生的后续步骤投影为完成。

4. 文件抬头

每个源文件只允许一个顶层声明,抬头固定为:

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 不接受浮点数,避免跨平台非确定性。
  • 布尔:truefalse
  • 空值:null,仅可用于显式 Option<T>
  • 注释:// 行注释/* 块注释 */;注释不进入哈希语义。
  • 每个赋值以 ; 结束;区块使用 {};列表使用 []
  • 源码正规化:去 BOM、LF、保留字符串内容、字段按规范顺序编码后计算 SHA-256。

完整文法见 language/grammar/TCS-CORE-v0.1.ebnf

6. 类型

6.1 标量

TextBoolIntUIntDecimalTextBytesDurationMsTimestampSha256NumberIdPathUriErrorCode

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

header source subject target inputs outputs conditions actions
authority resources failure stop cleanup rollback receipt

缺一个区块即 TCS-E1004 REQUIRED_SECTION_MISSING。未知区块默认拒绝,避免拼写错误被静默忽略。

8. 动作图

actions {
  A1 {
    operation = "CORE.ECHO";
    input_refs = ["MESSAGE"];
    output_refs = ["ECHOED"];
    on_success = "COMPLETE";
    on_failure = "FAIL_CLOSED";
  }
}

规则:

  • 操作必须来自编号能力注册表;
  • 输入输出引用必须先声明;
  • 目标只能通过已声明的 target 或动作的受限派生目标取得;
  • 默认禁止循环;循环必须声明最大次数、时间和退出条件;
  • 不允许环境变量、当前目录、默认账号或“最近一个对象”等环境隐式值;
  • COMPLETEFAIL_CLOSEDROLLBACKSTOPPED 是终态;
  • 每条失败边最终必须进入失败回执或已验证回滚,不能吞错。

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 包必须包含:

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 不得包含:

  • 未解析自然语言;
  • PENDINGAUTOLATESTANY 等运行时猜测值;
  • 未登记操作;
  • 漂移依赖;
  • 超出源程序的权限或目标。

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. 当前实现状态

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