define TCS language and prove stage0 execution slice

This commit is contained in:
冰朔 2026-08-21 16:57:25 +08:00
commit 3959ae4270
31 changed files with 2449 additions and 5 deletions

View file

@ -0,0 +1,102 @@
TCS 0.1;
COMPILER TCS-COMPILER-STAGE1-0001 {
header {
schema = "tcs.compiler/v1";
name_zh = "TCS 第一代自举编译器";
version = "0.1.0";
profile = "HLDP-NP/1";
lifecycle = "SOURCE_DEFINED_NOT_YET_EXECUTABLE";
bootstrap_seed = "TCS-STAGE0-IGNITION-0001";
output = "GIR/1";
}
source_language {
prologue = ["TCS", "VERSION", "SEMICOLON"];
declaration_kinds = ["PROGRAM", "MODULE", "PROTOCOL", "COMPILER", "EVENT", "RECEIPT"];
punctuation = ["LBRACE", "RBRACE", "LBRACKET", "RBRACKET", "LESS", "GREATER", "COLON", "EQUAL", "COMMA", "SEMICOLON", "DOT"];
scalar_tokens = ["IDENTIFIER", "TEXT", "INT", "BOOL", "NULL"];
comments = ["LINE_COMMENT", "BLOCK_COMMENT"];
encoding = "UTF8_LF_NO_BOM";
}
lexer_rules {
L001 { when = "BOM_AT_START"; emit_error = "TCS-E0001"; }
L002 { when = "WHITESPACE_OR_COMMENT"; action = "SKIP_WITH_SOURCE_POSITION"; }
L003 { when = "DOUBLE_QUOTE"; action = "READ_JSON_ESCAPED_TEXT"; on_unterminated = "TCS-E0002"; }
L004 { when = "MINUS_OR_ASCII_DIGIT"; action = "READ_SIGNED_DECIMAL_INT"; on_overflow = "TCS-E2001"; }
L005 { when = "UNICODE_LETTER_OR_UNDERSCORE"; action = "READ_IDENTIFIER_OR_KEYWORD"; }
L006 { when = "REGISTERED_PUNCTUATION"; action = "EMIT_PUNCTUATION_TOKEN"; }
L007 { when = "OTHER_CHARACTER"; emit_error = "TCS-E1001"; }
}
parser_rules {
P001 { nonterminal = "document"; sequence = ["prologue", "declaration", "EOF"]; }
P002 { nonterminal = "prologue"; sequence = ["TCS", "version", "SEMICOLON"]; }
P003 { nonterminal = "declaration"; sequence = ["declaration_kind", "identifier", "block"]; }
P004 { nonterminal = "block"; sequence = ["LBRACE", "member_zero_or_more", "RBRACE"]; }
P005 { nonterminal = "member"; alternatives = ["identifier_assignment", "identifier_typed_assignment", "identifier_block"]; }
P006 { nonterminal = "value"; alternatives = ["TEXT", "INT", "BOOL", "NULL", "IDENTIFIER", "array", "inline_object"]; }
P007 { when = "DUPLICATE_MEMBER_IN_SAME_BLOCK"; emit_error = "TCS-E1002"; }
P008 { when = "TOKEN_AFTER_TOP_LEVEL_DECLARATION"; emit_error = "TCS-E1001"; }
}
semantic_types {
scalars = ["Text", "Bool", "Int", "UInt", "DecimalText", "Bytes", "DurationMs", "Timestamp", "Sha256", "NumberId", "Path", "Uri", "ErrorCode"];
containers = ["List", "Set", "Map", "Option", "Ref", "Evidence", "Record"];
domains = ["Subject", "ExactTarget", "AuthorityProof", "ActionGraph", "ReceiptPlan", "RelationEvent"];
implicit_conversion = "FORBIDDEN";
floating_point = "FORBIDDEN_V0_1";
}
program_validation {
V001 { rule = "EXACT_REQUIRED_SECTIONS"; standard = "TCS-FIELD-STANDARD-0001"; error_missing = "TCS-E1004"; error_unknown = "TCS-E1003"; }
V002 { rule = "CLOSED_FIELDS_PER_SECTION"; error = "TCS-E1003"; }
V003 { rule = "ALL_INPUT_OUTPUT_AND_ACTION_REFS_RESOLVE"; error = "TCS-E2002"; }
V004 { rule = "ALL_OPERATIONS_REGISTERED_AT_LOCKED_VERSION"; error = "TCS-E2101"; }
V005 { rule = "SOURCE_ID_URI_HASH_AND_ROLE_RESOLVE"; errors = ["TCS-E3001", "TCS-E3002"]; }
V006 { rule = "SUBJECT_TARGET_AND_AUTHORITY_EXACT"; errors = ["TCS-E4001", "TCS-E4002", "TCS-E4003"]; }
V007 { rule = "ACTION_GRAPH_REACHABLE_AND_TERMINATING"; error = "TCS-E2001"; }
V008 { rule = "FAILURE_STOP_CLEANUP_ROLLBACK_AND_RECEIPT_PRESENT"; error = "TCS-E1004"; }
V009 { rule = "NO_FORBIDDEN_RUNTIME_PLACEHOLDER"; error = "TCS-E3002"; }
V010 { rule = "RELATION_AND_EMOTION_DO_NOT_GRANT_AUTHORITY"; error = "TCS-E4001"; }
}
lowering_to_gir {
G001 { from = "header"; to = "identity"; transform = "COPY_ID_VERSION_PROFILE_AND_LOCK_PROTOCOLS"; }
G002 { from = "source"; to = "compiled_from"; transform = "VERIFY_AND_BIND_SOURCE_SHA256"; }
G003 { from = "subject"; to = "subject"; transform = "RESOLVE_VERIFIED_SUBJECT"; }
G004 { from = "target"; to = "exact_target"; transform = "RESOLVE_PATH_STATE_AND_FINGERPRINT"; }
G005 { from = "actions"; to = "deterministic_action_graph"; transform = "SORT_ACTION_IDS_AND_RESOLVE_ALL_EDGES"; }
G006 { from = "authority"; to = "authority_proof"; transform = "BIND_PROOF_WITHOUT_EXPANDING_SCOPE"; }
G007 { from = "resources"; to = "resource_plan"; transform = "NORMALIZE_INTEGER_LIMITS"; }
G008 { from = "stop"; to = "timeout_and_stop"; transform = "COPY_EXPLICIT_STOP_SEMANTICS"; }
G009 { from = "cleanup"; to = "cleanup_plan"; transform = "COPY_EXACT_BOUNDARY"; }
G010 { from = "rollback"; to = "rollback_plan"; transform = "COPY_ACTIONS_AND_VERIFICATION"; }
G011 { from = "receipt"; to = "receipt_plan"; transform = "BIND_MACHINE_AND_HUMAN_OUTPUTS"; }
G012 { from = "all"; to = "unresolved_natural_language"; transform = "MUST_BE_FALSE"; }
}
canonicalization {
object_keys = "UTF8_BYTE_ORDER";
list_order = "PRESERVE_SOURCE_SEMANTICS";
integers = "MINIMAL_DECIMAL";
strings = "JSON_ESCAPE_NO_OPTIONAL_ESCAPE";
line_end = "LF";
final_newline = true;
semantic_digest = "SHA256";
comments_in_semantic_digest = false;
}
output_contract {
schema = "guanghu.gir/v1";
unresolved_natural_language = false;
unresolved_authority = false;
drifting_dependency = false;
target_must_be_exact = true;
compiler_provenance_required = true;
}
self_host {
stage0_compiles_stage1_to = "compiler-A.gir";
compiler_A_compiles_stage1_to = "compiler-B.gir";
fixed_point = "SEMANTIC_SHA256_A_EQUALS_B";
stage0_disabled_test = "REQUIRED";
standard_library_test = "REQUIRED";
negative_corpus_test = "REQUIRED";
minimum_runnable_module_test = "REQUIRED";
current_state = "NOT_PROVEN";
}
}

View file

@ -0,0 +1,78 @@
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"];
}
source {
source_id = "HLP-PART-TCS-LANG-0001";
source_uri = "language/examples/ECHO-MODULE.tcs";
source_sha256 = "SELF_AT_COMPILE_TIME";
source_role = "REGISTERED_MODULE";
}
subject {
subject_id = "HLP-SYSTEM-STAGE0-TEST";
subject_kind = "SYSTEM";
channel_id = "ICE-CH-ZC001";
verification = "LOCAL_TEST_FIXTURE";
}
target {
target_id = "HLP-TARGET-STAGE0-RECEIPT";
exact_path = "./build/echo-receipt.hldp";
expected_state = "ABSENT";
expected_fingerprint = "NONE";
}
inputs {
MESSAGE { type = "Text"; source = "PROGRAM_LITERAL"; required = true; value = "光湖语言已经进入机器执行链"; }
}
outputs {
ECHOED { type = "Text"; destination = "RECEIPT"; integrity = "SHA256"; }
}
conditions {
C1 { predicate = "TARGET_WITHIN_TEST_BUILD_ROOT"; on_false = "FAIL_CLOSED"; }
}
actions {
A1 {
operation = "CORE.ECHO";
input_refs = ["MESSAGE"];
output_refs = ["ECHOED"];
on_success = "COMPLETE";
on_failure = "FAIL_CLOSED";
}
}
authority {
issuer = "LOCAL_TEST_FIXTURE";
proof_ref = "TEST-ONLY";
scope = "EXACT_BUILD_RECEIPT_PATH";
valid_from = "PROGRAM_START";
valid_until = "PROGRAM_END";
single_use = true;
lease_required = false;
}
resources {
runway = "LOCAL_TEST";
concurrency = 1;
timeout_ms = 1000;
memory_limit_bytes = 1048576;
}
failure { errors = ["TCS-E6001", "TCS-E8001"]; fail_closed = true; }
stop { signals = ["TIMEOUT"]; safe_checkpoint = "NONE"; }
cleanup { targets = ["UNCOMMITTED_TEST_RECEIPT"]; exact_boundary = "./build"; }
rollback { preconditions = ["RECEIPT_NOT_COMMITTED"]; actions = ["DROP_TEMP_RECEIPT"]; verification = ["NO_FINAL_RECEIPT"]; }
receipt {
protocol = "TCS-DEV-VERIFY-v1.0";
machine_path = "./build/echo-receipt.hldp";
human_projection = "REQUIRED";
integrity = "SHA256";
target_readback = "EXACT_CONTENT_AND_HASH";
}
}

View file

@ -0,0 +1,29 @@
TCS 0.1;
MODULE HLP-MODULE-ECHO-0001 {
header {
schema = "tcs.module/v1";
name_zh = "光湖最小回声模块";
name_en = "GuangHu Minimum Echo Module";
version = "0.1.0";
language = "TCS/0.1";
profile = "HLDP-NP/1";
protocols = ["TCS-MODULE-ABI-0001", "GLS-0131"];
lifecycle = "CANDIDATE";
canonical_uri = "language/examples/ECHO-PACKAGE.tcs";
compatibility = ["TCS-STAGE0-IGNITION-0001"];
}
source { source_id = "HLP-PART-TCS-LANG-0001"; source_uri = "language/examples/ECHO-PACKAGE.tcs"; source_sha256 = "SELF_AT_COMPILE_TIME"; source_role = "REGISTERED_MODULE"; }
manifest { module_id = "HLP-MODULE-ECHO-0001"; display_name_zh = "光湖最小回声模块"; entry_program_id = "HLP-PROGRAM-ECHO-0001"; entry_source = "language/examples/ECHO-MODULE.tcs"; }
entry { kind = "PROGRAM"; id = "HLP-PROGRAM-ECHO-0001"; }
capabilities { required = ["CORE.ECHO"]; provided = ["HLP-CAPABILITY-ECHO-0001"]; }
authority_ceiling { maximum = "LOCAL_EXACT_RECEIPT_PATH"; network = false; process = false; }
resource_ceiling { concurrency = 1; timeout_ms = 1000; memory_limit_bytes = 1048576; }
data_scope { read = ["PROGRAM_LITERAL"]; write = ["ACCOUNT_OR_TEST_SCOPED_RECEIPT"]; }
network_scope { allowed = false; domains = []; }
install { account_scoped = true; registration_is_installation = false; activation_requires_self_test = true; }
self_test { program_id = "HLP-PROGRAM-ECHO-0001"; expect = "EXECUTED_TARGET_READBACK_VERIFIED"; }
rollback { action = "REMOVE_INSTALLED_BYTES_AND_RESTORE_PREVIOUS_ACTIVE_VERSION"; preserve_receipts = true; }
projection { display_name_zh = "光湖最小回声模块"; technical_detail_default = false; }
}

View file

@ -0,0 +1,15 @@
TCS 0.1;
EVENT HLP-EVENT-TCS-FIRST-MACHINE-ECHO-20260821 {
header { schema = "tcs.event/v1"; name_zh = "TCS 第一条机器回声"; name_en = "TCS First Machine Echo"; version = "0.1.0"; language = "TCS/0.1"; profile = "HLDP/1"; protocols = ["GLS-0400"]; lifecycle = "CANDIDATE"; canonical_uri = "language/examples/MINIMUM-EVENT.tcs"; compatibility = ["TCS-STAGE0-IGNITION-0001"]; }
source { source_id = "HLP-PROGRAM-ECHO-0001"; source_uri = "build/echo-receipt.hldp"; source_sha256 = "ecfaeea08b6735e806f752f25ec0ef7754aca505b1a076a32cb5fc22937a816b"; source_role = "GENERATED_FROM_VERIFIED_SOURCE"; }
subject { subject_id = "HLP-SYSTEM-STAGE0-TEST"; subject_kind = "SYSTEM"; }
event_time { value = "2026-08-21"; precision = "DAY_ONLY_IN_SOURCE_EVENT"; }
trigger { value = "冰朔要求TCS程序必须能被系统直接运行而不是只让AI阅读"; }
observation { value = "ECHO程序被编译为GIR并由受限运行器执行目标回执逐字节读回一致"; }
emergence { value = "语言规范开始转为机器执行链但当前仍是Stage-0宿主点火器"; }
lock { value = "compiled=true; executed=true; readback=true; native_self_hosted=false"; }
why { value = "必须分开证明语法、编译、运行与自举,否则宿主程序会再次冒充原生语言完成"; }
rejected { values = ["把Rust点火器称为TCS原生编译器", "让AI阅读TCS源码后手动模仿执行"] ; }
evidence { source = "language/examples/ECHO-MODULE.tcs"; gir = "build/ECHO-MODULE.gir.json"; receipt = "build/echo-receipt.hldp"; }
}

View file

@ -0,0 +1,28 @@
TCS 0.1;
PROTOCOL GLS-EXAMPLE-ECHO-0001 {
header {
schema = "tcs.protocol/v1";
name_zh = "回声操作示范协议";
name_en = "Echo Operation Example Protocol";
version = "0.1.0";
language = "TCS/0.1";
profile = "HLDP/1";
protocols = ["GLS-0010", "GLS-0101"];
lifecycle = "CANDIDATE";
canonical_uri = "language/examples/MINIMUM-PROTOCOL.tcs";
compatibility = ["TCS-STAGE0-IGNITION-0001"];
}
source { source_id = "BINGSHUO-CURRENT-DIRECT-LANGUAGE"; source_uri = "source://current-dialogue/2026-08-21"; source_sha256 = "REGISTER_AT_ACCEPTANCE"; source_role = "DIRECT_HUMAN"; }
scope { operation = "CORE.ECHO"; reality_write = "RECEIPT_ONLY"; }
vocabulary { input = "MESSAGE"; output = "ECHOED"; }
fields { MESSAGE = "Text"; ECHOED = "Text"; }
states { values = ["READY", "EXECUTING", "EXECUTED", "FAILED"]; initial = "READY"; terminal = ["EXECUTED", "FAILED"]; }
transitions { T1 = "READY->EXECUTING"; T2 = "EXECUTING->EXECUTED_ON_READBACK"; T3 = "EXECUTING->FAILED_ON_ERROR"; }
invariants { I1 = "OUTPUT_EQUALS_INPUT"; I2 = "TARGET_INSIDE_EXACT_ROOT"; I3 = "RECEIPT_READBACK_REQUIRED"; }
validation { V1 = "MESSAGE_IS_TEXT"; V2 = "TARGET_EQUALS_RECEIPT_PATH"; }
errors { E1 = "TCS-E4002"; E2 = "TCS-E6001"; E3 = "TCS-E6002"; }
examples { positive = "language/examples/ECHO-MODULE.tcs"; negative = "ABSORB_AND_PATH_TRAVERSAL_TESTS"; }
acceptance { required = ["PARSE", "COMPILE", "EXECUTE", "TARGET_READBACK", "RECEIPT_HASH"]; partial = false; }
}

View file

@ -0,0 +1,34 @@
document = prologue, declaration, EOF ;
prologue = "TCS", version, ";" ;
version = integer, ".", integer ;
declaration = declaration_kind, identifier, block ;
declaration_kind = "PROGRAM" | "MODULE" | "PROTOCOL" | "COMPILER" | "EVENT" | "RECEIPT" ;
block = "{", { member }, "}" ;
member = identifier, ( typed_assignment | assignment | block ) ;
typed_assignment = ":", type_expression, "=", value, ";" ;
assignment = "=", value, ";" ;
value = string | integer | boolean | null | identifier | array | inline_object ;
array = "[", [ value, { ",", value } ], "]" ;
inline_object = "{", [ pair, { ",", pair } ], "}" ;
pair = identifier, ":", value ;
type_expression = identifier, [ "<", type_expression, { ",", type_expression }, ">" ] ;
boolean = "true" | "false" ;
null = "null" ;
integer = [ "-" ], digit, { digit } ;
identifier = identifier_start, { identifier_continue } ;
identifier_start = unicode_letter | "_" ;
identifier_continue = unicode_letter | digit | "_" | "-" | "." | "/" | ":" | "@" ;
string = '"', { json_string_character }, '"' ;
line_comment = "//", { any_character_except_line_break } ;
block_comment = "/*", { any_character_not_closing_comment }, "*/" ;
whitespace = " " | "\t" | "\n" | line_comment | block_comment ;
(* v0.1 *)
(* PROGRAM *)
(* token *)
(* *)

View file

@ -0,0 +1,66 @@
# 陌生 AI 学习 TCS 的固定入口
目标:让没有参与光湖历史的 AI 在不冒充人格、不猜测权限、不依赖旧摘要的前提下,学会读取、
编写、审查和编译 TCS 程序。
## 阅读顺序
1. `TCS-LANGUAGE-SPECIFICATION-v0.1.md`:先理解一套语言和分层。
2. `TCS-CORE-v0.1.ebnf`:学习机器语法,不从示例猜语法。
3. `TCS-FIELD-STANDARD-v0.1.hldp`:掌握 PROGRAM 的闭合字段。
4. `TCS-ERROR-STANDARD-v0.1.hldp`:知道何时必须失败关闭。
5. `TCS-MODULE-ABI-v0.1.hldp`:理解模块怎样被系统装载,而不是由 AI 阅读后模仿。
6. `ECHO-MODULE.tcs`:阅读最小可执行程序。
7. `TCS-COMPILER-STAGE1.tcs`:理解语言如何描述自己的编译器。
## 五个必须回答的问题
在写任何程序前AI 必须用来源证据回答:
1. `WHO`:主体是谁,验证证据是什么?
2. `WHAT`:精确目标、预期状态和指纹是什么?
3. `WHY`:自然语言来源、纠正和采用/否决原因是什么?
4. `MAY`:谁授权、范围多大、多久、是否一次性?
5. `PROVE`:执行后从哪里读回,怎样回滚,回执写到哪里?
任一答案未知,写成编译错误或待研究事实;禁止填 `AUTO``ANY``LATEST` 或“系统自行判断”。
## 自然语言到程序的翻译方法
冰朔自然语言不是直接 shell 命令。AI 应依次抽取:
```text
原话 → 目标 → 偏好 → 纠正 → 现实边界
→ 已知 / 未知 / 冲突
→ 主体、目标、输入、输出、条件
→ 权限、资源、动作图
→ 失败、停止、清理、回滚、回执
→ TCS 源程序
```
翻译必须保留原话来源,但 GIR 中只能留下已经解析的机器事实和来源引用。
## 不能犯的错误
- 把 TCS、HLDP、HNL、GLS 当成四套独立语言;
- 把人格体回复或系统提示当作冰朔直接原话;
- 把注册表条目当作模块已安装;
- 把源码存在当作运行、部署或健康;
- 用情感、关系或模型自信替代权限;
- 让宿主适配器扩大目标或范围;
- 生成一个脚本让 AI 阅读执行,却没有 GIR、装载器和回执
- 把 Stage-0 宿主编译器称为 TCS 已自举。
## 最小练习
陌生 AI 的第一个练习不是删除、部署或联网,而是:
1. 解析 `ECHO-MODULE.tcs`
2. 列出 15 个必需区块;
3. 解释 `CORE.ECHO` 的输入、输出、目标和回执;
4. 把操作改为 `ABSORB`,确认得到 `TCS-E2101`
5. 把目标改成 `../escape`,确认运行器得到 `TCS-E4002`
6. 读回执行回执并指出 `native_self_hosted=false` 的含义。
全部通过后AI 只获得“会读写 v0.1 子集”的资格,不因此获得人格绑定或现实写入权限。

View file

@ -0,0 +1,263 @@
# 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: IMPLEMENTATION_ACTIVE
gir_module_loader: IMPLEMENTATION_ACTIVE
tcs_stage1_compiler: NOT_IMPLEMENTED
self_compile_fixed_point: NOT_PROVEN
jd_final_native_master: NOT_PROVEN
hololake_tcs_runtime_integration: NOT_IMPLEMENTED
```

View file

@ -0,0 +1,52 @@
schema: tcs.declaration-standard/v1
id: TCS-DECLARATION-STANDARD-0001
version: 0.1.0
state: DRAFT_EXECUTABLE_SUBSET
common_header:
required:
schema: Text
name_zh: Text
name_en: Text
version: SemVerText
language: Text
profile: Text
protocols: List<NumberId>
lifecycle: Enum<CANDIDATE,STABLE,DEPRECATED,RETIRED>
canonical_uri: Uri
compatibility: List<Text>
identity_rule: TOP_LEVEL_DECLARATION_ID_IS_AUTHORITATIVE_AND_MUST_MATCH_REGISTRY
declarations:
PROGRAM:
schema: tcs.program/v1
required_sections: [header, source, subject, target, inputs, outputs, conditions, actions, authority, resources, failure, stop, cleanup, rollback, receipt]
executable: true
MODULE:
schema: tcs.module/v1
required_sections: [header, source, manifest, entry, capabilities, authority_ceiling, resource_ceiling, data_scope, network_scope, install, self_test, rollback, projection]
executable: THROUGH_REGISTERED_ENTRY_PROGRAM
PROTOCOL:
schema: tcs.protocol/v1
required_sections: [header, source, scope, vocabulary, fields, states, transitions, invariants, validation, errors, examples, acceptance]
executable: false
COMPILER:
schema: tcs.compiler/v1
required_sections: [header, source_language, lexer_rules, parser_rules, semantic_types, program_validation, lowering_to_gir, canonicalization, output_contract, self_host]
executable: AFTER_SELF_HOST_GATES
EVENT:
schema: tcs.event/v1
required_sections: [header, source, subject, event_time, trigger, observation, emergence, lock, why, rejected, evidence]
executable: false
append_only: true
RECEIPT:
schema: tcs.receipt/v1
required_sections: [header, request, operation, result, verification, proof, integrity, boundaries, next]
executable: false
append_only: true
extension_rule:
unknown_section: REJECT
allowed_only_when:
- EXTENSION_HAS_REGISTERED_GLS_ID
- EXTENSION_VERSION_IS_LOCKED
- EXTENSION_SCHEMA_AND_NEGATIVE_CASES_EXIST
- COMPILER_EXPLICITLY_SUPPORTS_EXTENSION

View file

@ -0,0 +1,43 @@
schema: tcs.error-standard/v1
id: TCS-ERROR-STANDARD-0001
version: 0.1.0
families:
TCS-E0: LEXICAL
TCS-E1: SYNTAX_AND_STRUCTURE
TCS-E2: REGISTRY_AND_TYPE
TCS-E3: SOURCE_AND_INTEGRITY
TCS-E4: AUTHORITY_AND_SCOPE
TCS-E5: RESOURCE_AND_LIFECYCLE
TCS-E6: EXECUTION_AND_TARGET_READBACK
TCS-E7: CLEANUP_AND_ROLLBACK
TCS-E8: RECEIPT_AND_WRITEBACK
TCS-E9: SELF_HOST_AND_FIXED_POINT
errors:
TCS-E0001: INVALID_UTF8_OR_BOM
TCS-E0002: UNTERMINATED_STRING_OR_COMMENT
TCS-E1001: UNEXPECTED_TOKEN
TCS-E1002: DUPLICATE_FIELD
TCS-E1003: UNKNOWN_SECTION_OR_FIELD
TCS-E1004: REQUIRED_SECTION_MISSING
TCS-E2001: TYPE_MISMATCH
TCS-E2002: REFERENCE_NOT_DECLARED
TCS-E2101: UNREGISTERED_OPERATION
TCS-E2102: PROTOCOL_VERSION_DRIFT
TCS-E3001: SOURCE_HASH_MISMATCH
TCS-E3002: SOURCE_PROVENANCE_UNRESOLVED
TCS-E4001: AUTHORITY_UNRESOLVED
TCS-E4002: TARGET_OUT_OF_SCOPE
TCS-E4003: LEASE_REQUIRED
TCS-E5001: RESOURCE_LIMIT_INVALID
TCS-E5002: ILLEGAL_LIFECYCLE_TRANSITION
TCS-E6001: TARGET_STATE_MISMATCH
TCS-E6002: TARGET_READBACK_FAILED
TCS-E7001: CLEANUP_INCOMPLETE
TCS-E7002: ROLLBACK_INCOMPLETE
TCS-E8001: RECEIPT_WRITE_FAILED
TCS-E8002: RECEIPT_INTEGRITY_MISMATCH
TCS-E9001: SELF_COMPILE_SEMANTIC_HASH_MISMATCH
failure_shape:
required: [error_code, phase, source_location, human_message_zh, machine_detail, receipt_ref]
secret_material_allowed: false

View file

@ -0,0 +1,73 @@
schema: tcs.field-standard/v1
id: TCS-FIELD-STANDARD-0001
version: 0.1.0
state: DRAFT_EXECUTABLE_SUBSET
canonical_order:
PROGRAM: [header, source, subject, target, inputs, outputs, conditions, actions, authority, resources, failure, stop, cleanup, rollback, receipt]
header:
closed: true
required:
schema: Text
name_zh: Text
name_en: Text
version: Text
language: Text
profile: Text
protocols: List<NumberId>
lifecycle: Enum<CANDIDATE,STABLE,DEPRECATED,RETIRED>
canonical_uri: Uri
compatibility: List<Text>
source:
closed: true
required:
source_id: NumberId
source_uri: Uri
source_sha256: Sha256
source_role: Enum<DIRECT_HUMAN,CANONICAL_PROTOCOL,REGISTERED_MODULE,GENERATED_FROM_VERIFIED_SOURCE>
subject:
closed: true
required:
subject_id: NumberId
subject_kind: Enum<HUMAN,PERSONA,SYSTEM,NODE,RUNTIME_INSTANCE>
channel_id: NumberId
verification: Text
target:
closed: true
required:
target_id: NumberId
exact_path: Path
expected_state: Text
expected_fingerprint: Sha256
inputs:
entry_required: [type, source, required]
outputs:
entry_required: [type, destination, integrity]
conditions:
entry_required: [predicate, on_false]
actions:
entry_required: [operation, input_refs, output_refs, on_success, on_failure]
cycles: REJECT_UNLESS_BOUNDED
authority:
closed: true
required: [issuer, proof_ref, scope, valid_from, valid_until, single_use, lease_required]
resources:
closed: true
required: [runway, concurrency, timeout_ms, memory_limit_bytes]
failure:
closed: true
required: [errors, fail_closed]
stop:
closed: true
required: [signals, safe_checkpoint]
cleanup:
closed: true
required: [targets, exact_boundary]
rollback:
closed: true
required: [preconditions, actions, verification]
receipt:
closed: true
required: [protocol, machine_path, human_projection, integrity, target_readback]
forbidden_placeholders: [PENDING, AUTO, ANY, LATEST, DEFAULT_ACCOUNT, CURRENT_DIRECTORY]
duplicate_fields: REJECT
unknown_fields: REJECT_UNLESS_PROTOCOL_EXTENSION_IS_REGISTERED

View file

@ -0,0 +1,54 @@
schema: tcs.module-abi/v1
id: TCS-MODULE-ABI-0001
version: 0.1.0
state: DRAFT_LOADER_CONTRACT
package_required:
- module.tcs
- module.gir.json
- module.lock.hldp
- module.manifest.hldp
- receipts/compile.hldp
manifest_required:
- module_id
- display_name_zh
- version
- entry_program_id
- gir_sha256
- compiler_id
- compiler_sha256
- protocols
- capabilities
- authority_ceiling
- resource_ceiling
- data_scope
- network_scope
- lifecycle
- rollback
- human_projection
lifecycle:
states: [SOURCE, COMPILED, VERIFIED, INSTALLED, MOUNTED, ACTIVE, SUSPENDED, RETIRED]
no_skipping: true
registration_is_installation: false
installation_is_activation: false
loader_sequence:
- VERIFY_PACKAGE_STRUCTURE
- VERIFY_SOURCE_GIR_LOCK_AND_MANIFEST_HASHES
- VERIFY_COMPILER_AND_PROTOCOL_VERSIONS
- VERIFY_SIGNATURE_AND_AUTHORITY_CEILING
- VERIFY_CAPABILITY_REGISTRATION
- INSTALL_ACCOUNT_OR_SYSTEM_SCOPED_BYTES
- RUN_ISOLATED_SELF_TEST
- MOUNT_ENTRY_PROGRAM
- ACTIVATE_ONLY_AFTER_RECEIPT
- TARGET_READBACK_AND_HUMAN_PROJECTION
runtime_call:
input: GIR_ACTION_NODE_PLUS_CAPABILITY_TICKET
output: TYPED_RESULT_EVIDENCE_AND_RECEIPT
ai_reads_source_to_execute: false
host_expands_scope: false
failure:
any_hash_mismatch: FAIL_CLOSED
missing_capability: FAIL_CLOSED
protocol_drift: FAIL_CLOSED
rollback_receipt_required: true

View file

@ -0,0 +1,33 @@
schema: tcs.self-host-standard/v1
id: TCS-SELF-HOST-STANDARD-0001
version: 0.1.0
state: DEFINED_NOT_YET_PASSED
compiler_source: language/compiler/TCS-COMPILER-STAGE1.tcs
gates:
- id: SH-01
require: STAGE0_COMPILES_STAGE1_TO_COMPILER_A_GIR
- id: SH-02
require: COMPILER_A_EXECUTES_ON_GUANGHU_RUNTIME
- id: SH-03
require: COMPILER_A_COMPILES_SAME_STAGE1_TO_COMPILER_B_GIR
- id: SH-04
require: CANONICAL_SEMANTIC_SHA256_A_EQUALS_B
- id: SH-05
require: COMPILER_B_COMPILES_STANDARD_LIBRARY_NEGATIVE_CORPUS_AND_RUNNABLE_MODULE
- id: SH-06
require: COMPLETE_CHAIN_RUNS_WITH_STAGE0_DISABLED
- id: SH-07
require: HOLOLAKE_AND_GUANGHU_OS_LOAD_SAME_GIR_ABI
decision:
allowed: [FAIL_0, PASS_100]
partial_pass: false
current:
SH-01: FAIL_0
SH-02: FAIL_0
SH-03: FAIL_0
SH-04: FAIL_0
SH-05: FAIL_0
SH-06: FAIL_0
SH-07: FAIL_0
aggregate: FAIL_0