阶段3:A4 修订——V2 支持日期字面量(D#/TOD#/DT#,纪元 1970,无小数秒,年 1..9999)

This commit is contained in:
2026-08-26 08:53:07 +08:00
parent a7f89dc180
commit 1335283279
3 changed files with 5 additions and 4 deletions
+1 -1
View File
@@ -194,7 +194,7 @@
| ~~A1~~ | ~~元数据段格式~~ | **已定案(U12**v1 0 长度占位(offset_meta=0),schema 延后 |
| ~~A2~~ | ~~常量内嵌 vs 常量表~~ | **已定案**:常量表(8B LOADK 查表);LOADK 用 type 位段解释;条目 8B 无 tagIMM64 预留不发射 |
| A3 | 内建 FB 字段类型化 | **已定案**:字段类型化(TON: in/pt/q/et = BOOL/TIME/BOOL/TIMER_TRIG: clk/q = BOOL/BOOL);计数器单/双字(INT/DINT**编码形式 = fb 表拆条**CTU/DCTU/CTD/DCTD/CTUD/DCTUD 6 条,名字即宽度)——U5 已定案 |
| A4 | DATE/TOD/DT 字面量 | **已定案**v1 **不支持**(类型存在,仅声明/存取/比较,无 `D#/TOD#/DT#` 字面量语法 |
| A4 | DATE/TOD/DT 字面量 | **已定案V2 修订)****V2 支持** IEC 格式 `D#2026-8-24`/`TOD#12:30:00`/`DT#2026-8-24-12:30:00`;纪元 1970-01-01=0 天;TOD 无小数秒;年 1..9999(详见阶段3-语言层V2.md L10 |
| A5 | 算术语义细化 | **已定案**:饱和模板化到各宽度(SINT/DINT/LINT);TIME+TIME / TIME-TIME / TIME 比较;浮点 IEEE 常规(溢出→±inf、0 除→±inf、NaN 传播,无特判);DATE/TOD/DT **不做运算**(仅存取/比较) |
| A6 | sidecar/I/O 绑定 | **已定案**:与现状一致——绑定粒度仍 `slot = 槽号`(指向槽表条目),channel/bit 语义不变 |
| A7 | disasm 文本格式 | **已定案****类型后缀**形式:`LOAD.I16 r5, s3``STORE.U32 s1, r7``ADD.F64 r1, r2, r3` |
+1 -1
View File
@@ -39,7 +39,7 @@
- **槽表(8B/条 {addr:u32, 预留:u32})→ 值区**:两级间接;全 32 位寻址(槽 2^32、值区 4GB
- **值区变宽紧凑**:1/2/4/8B 对齐编译器保证(值段起点 16 对齐)
- **类型**19 IEC 类型 → **10 种 func** 编译期映射;BOOL 编译器强制 0/1;字面量按上下文适配、默认 DINT 兜底;进制前缀 2#/8#/16#;**禁隐式变量转换**(编译期报错)
- **DATE/TOD/DT**DATE=u32(天)、TOD=u32(当日 ms)、DT=u64 {date:32|tod:32} 拼接;v1 不运算
- **DATE/TOD/DT**DATE=u32(天)、TOD=u32(当日 ms)、DT=u64 {date:32|tod:32} 拼接;v1 不运算(仅存取/比较);**字面量 V2 支持**(D#/TOD#/DT#,纪元 1970
- **常量表**:条目 8B 原始值(无 tag),LOADK 按 func 解释,同值多类型复用
## 4. 执行语义(定案)