10. 字节码与工具链

10.1 范围

本章定义 PTO-AS、PTO IR 与字节码形态之间的实际交换与验证契约。

10.2 表示层次

PTO 表示层次包括:

  1. 虚拟 ISA 语义
  2. PTO-AS 文本形态
  3. PTO IR 结构化形态
  4. 字节码序列化交换形态

层间转换 MUST 保持架构可观察语义。

10.3 字节码模块契约(v1)

一致性 v1 模块 MUST 保留:

  • 操作/基本块/函数顺序
  • SSA 定义-使用拓扑
  • 操作数/结果类型信息
  • 必需属性与模式元数据
  • 符号与入口身份

若无法无损保留,序列化 MUST 确定性失败。

10.4 验证流水

建议流水:

  1. PTO-AS 解析为 IR
  2. 运行结构验证器
  3. IR 序列化为字节码
  4. 字节码反序列化为 IR
  5. 再次运行结构验证器
  6. 可选运行目标合法性验证器

CI SHOULD 覆盖前 1-5 步。

10.5 诊断契约

诊断 MUST 满足:

  • 文本形态具备定位信息
  • 对等价输入具备确定性
  • 提供期望与实际约束差异

最小错误类别:

  • 解析错误
  • 结构验证错误
  • 字节码格式/兼容错误
  • 目标合法性错误

10.6 兼容策略

演进策略 MUST 定义:

  • schema 版本字段
  • 向后兼容窗口
  • 未知字段与未知操作处理规则

默认策略:

  • 未知必需字段:拒绝
  • 未知可选字段:除非兼容模式显式允许,否则拒绝
  • 未知操作:以确定性“未支持操作”诊断拒绝

10.7 往返保证

对支持特性,text -> IR -> bytecode -> IR -> text SHOULD 保持:

  • 语义
  • 验证相关结构
  • 必需元数据

不要求文本格式逐字节一致。

10.8 运行验收清单

每次发布 SHOULD 验证:

  • 解析器正反例套件
  • 结构验证一致性套件
  • 畸形字节码鲁棒性测试
  • 往返回归语料
  • 诊断文案稳定性快照