Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
IEC 13568-04 (2008) 是国际电工委员会(IEC)发布的一项基础信息技术标准,等同采用国际标准化组织与国际电工委员会的联合标准 ISO/IEC 13568:2008。该标准正式定义了 Z 形式规范表示法(Z notation)的语法、类型系统及数学语义,为描述软件、硬件及混合系统的结构与行为提供了精确的形式化语言。
Z 语言自 1970 年代由牛津大学提出以来,已在安全关键系统、通信协议、银行系统等领域积累了大量成功案例。IEC 13568-04 是基于多年实践和理论研究,首次将 Z 语言以一个国际标准的形式固定下来,消除了各种方言之间的歧义,为工具开发和学术交流建立了共同基础。
本标准适用于:
标准主体包括两部分:基础语言(核心语法与类型规则)和数学语义(基于 ZFC 集合论的解释)。
标准以扩展 BNF 形式详细定义了 Z 的词汇(标识符、数字、自由类型等)和文法规程。Z 规范由若干个段落组成,段落可以是模式定义、自由类型声明、公理描述、运算符定义等。
Z 属于强类型语言,提供以下基础类型构造:
所有表达式都必须在类型系统中合法,标准规定了详尽的类型规则与类型推导算法,确保规范的正确性。
标准的语义部分采用模型论方法,将每个语法构造映射到集合论实体。例如,模式被解释为一个由所有满足谓词的状态绑定的集合;操作模式则描述状态之间的变迁关系。
下面列出 Z 语言中常用的构造及其语义说明:
| 构造 | 示例 | 类型 / 语义 | 说明 |
|---|---|---|---|
| 给定类型 | [NAME] | 基本类型 | 引入抽象原子集 |
| 模式 (Schema) | State ≙ [x:ℤ; y:ℤ | x > y] | 绑定集 | 定义系统状态的合法组合 |
| 谓词 | x ∈ dom f ∧ f(x) = v | 真值 | 逻辑条件与集合运算 |
| 模式运算 | ΔState ≙ [State; State’ | …] | 关系语义 | 描述状态变化 |
| 泛型构造 | Seq[X] ≙ ℕ ⇸ X | 参数化类型 | 定义模板容器 |
目前已有多个支持 IEC 13568-04 的成熟工具:Community Z Tools (CZT)、Z/EVES、Z3 集成、Fuzz 类型检查器等。建议在项目初期确定工具链,并验证其符合标准的版本。
Z 规范可以嵌入文档驱动开发过程。通常的集成模式为:
IEC 13568-04 在技术内容上与 ISO/IEC 13568:2008 完全一致。部分国家(如加拿大通过 CSA)采纳为国家级标准 CAN/CSA-ISO/IEC 13568-04。此标准之前的版本为 ISO/IEC 13568:2002,2008 版修正了类型规则和语义定义中的若干歧义,并增加了泛型机制的正式描述。
Z 可与 OMG 的 UML 配合使用:UML 用于面向对象视角的图形建模,而 Z 可在后台对每个类和状态机附加形式化约束。两者之间可通过 OCL 结合,但 Z 的表达能力和证明能力更强。
VDM 与 B 方法也各自拥有国际标准(ISO/IEC 13817-1、ISO/IEC 14421 等)。三者在底层集合论和逻辑上高度相似,但在规格结构(B 方法更强调精化)和类型灵活性上存在差异。IEC 13568-04 的特点在于其模式机制和丰富的集合类型,特别适合描述数据密集型系统。
各标准之间已有语义桥接研究,例如将 Z 规范翻译到 B 事件系统(Event-B)进行证明,或利用 Z 的集合等价性对 VDM 约束进行消解。在实际项目中,可以根据特长混合使用,但需注意要保持各自本质语义不冲突。
本文基于 2026 年的技术回顾撰写,IEC 13568-04 仍是当前形式化规范方面的权威标准之一。建议读者结合最新的工具和案例进行实践。