10. 字节码与工具链¶
10.1 范围¶
本章定义 PTO-AS、PTO IR 与字节码形态之间的实际交换与验证契约。
10.2 表示层次¶
PTO 表示层次包括:
- 虚拟 ISA 语义
- PTO-AS 文本形态
- PTO IR 结构化形态
- 字节码序列化交换形态
层间转换 MUST 保持架构可观察语义。
10.3 字节码模块契约(v1)¶
一致性 v1 模块 MUST 保留:
- 操作/基本块/函数顺序
- SSA 定义-使用拓扑
- 操作数/结果类型信息
- 必需属性与模式元数据
- 符号与入口身份
若无法无损保留,序列化 MUST 确定性失败。
10.4 验证流水¶
建议流水:
- PTO-AS 解析为 IR
- 运行结构验证器
- IR 序列化为字节码
- 字节码反序列化为 IR
- 再次运行结构验证器
- 可选运行目标合法性验证器
CI SHOULD 覆盖前 1-5 步。
10.5 诊断契约¶
诊断 MUST 满足:
- 文本形态具备定位信息
- 对等价输入具备确定性
- 提供期望与实际约束差异
最小错误类别:
- 解析错误
- 结构验证错误
- 字节码格式/兼容错误
- 目标合法性错误
10.6 兼容策略¶
演进策略 MUST 定义:
- schema 版本字段
- 向后兼容窗口
- 未知字段与未知操作处理规则
默认策略:
- 未知必需字段:拒绝
- 未知可选字段:除非兼容模式显式允许,否则拒绝
- 未知操作:以确定性“未支持操作”诊断拒绝
10.7 往返保证¶
对支持特性,text -> IR -> bytecode -> IR -> text SHOULD 保持:
- 语义
- 验证相关结构
- 必需元数据
不要求文本格式逐字节一致。
10.8 运行验收清单¶
每次发布 SHOULD 验证:
- 解析器正反例套件
- 结构验证一致性套件
- 畸形字节码鲁棒性测试
- 往返回归语料
- 诊断文案稳定性快照