An example of a formal specification (in Spanish) using the Z notation, with named schema boxes, including declarations and predicates
← ホームへ戻る

Z表記法計算機システムの厳密な仕様記述を実現する形式言語

🗓 2026年8月13日

複雑なソフトウェアや計算機システムを構築する際、曖昧な自然言語による仕様書は、設計ミスや実装の不整合を招く原因となります。こうした課題を解決するために開発されたのがZ表記法(Z notation)です。これは数学的な基盤に基づいた形式仕様言語であり、システムの動作や状態を厳密にモデル化することで、高い信頼性が求められるシステムの設計を支援します。

Key Facts

  • 数学的基盤:公理的集合論、ラムダ計算、一次述語論理に基づいた形式言語。
  • 主な目的:コンピュータプログラムや計算機ベースのシステムの明確な仕様記述。
  • 特徴的な構造:「スキーマ」と呼ばれるボックスを用いて、大規模な仕様を構造的に記述できる。
  • 標準化:2002年にISO(ISO/IEC 13568)として標準化されている。
  • 実績:IBMのCICS(トランザクション処理ソフトウェア)の仕様記述に適用され、高い評価を得た。

Z表記法の成り立ちと歴史

Z表記法の基礎を築いたのは、ジャン=レイモン・アブリアル(Jean-Raymond Abrial)です。彼は1974年に「Data Semantics」を発表し、その後1977年にスティーブ・シューマンやベルトラン・マイヤーらの協力を得てZ表記法を提案しました。

Jean-Raymond Abrial, the main originator of the Z notation

1979年以降、アブリアルはオックスフォード大学のプログラミング研究グループに加わり、バーナード・サフリンやイブ・ホルム・ソレンセンらと共にこの言語をさらに発展させました。特にソレンセンは、Z表記法を用いた初期の研究で博士号を取得し、ユーザーコミュニティの形成に尽力しました。

実用面での大きな転換点となったのは、オックスフォード大学とIBM Hursleyによる共同プロジェクトです。IBMのトランザクション処理システムであるCICSの一部をZ表記法で形式的に仕様化したこの取り組みは、1992年に「クイーンズ賞(Queen's Award for Technological Achievement)」を受賞するという快挙を成し遂げました。

技術的な仕組みと表記の特徴

Z表記法は、数学的な厳密さを担保するために、標準的な数学記法を採用しています。具体的には、公理的集合論ラムダ計算、および一次述語論理をベースとしています。また、単純な集合論で発生しうるパラドックスを回避するため、すべての表現に「型」を定義する型システムを備えているのが特徴です。

効率的な記述を可能にするため、Z表記法には「数学ツールキット」と呼ばれる、頻繁に使用される関数や述語の標準カタログが用意されています。さらに、キャロル・モーガンによって導入されたスキーマ(Schema)という概念が、Z表記法の柔軟性を高めています。スキーマは宣言と述語をまとめたボックス形式の構造であり、これらを論理演算子で組み合わせたり、他のスキーマに組み込んだりすることで、複雑なシステムを階層的に、かつ簡潔に記述することが可能です。

An example of a formal specification (in Spanish) using the Z notation, with named schema boxes, including declarations and predicates

標準化とコミュニティの展開

Z表記法の普及に伴い、1985年にはイブ・ソレンセン主導でユーザー会が始まり、1992年にはZユーザーグループ(ZUG)が設立されました。このグループは、ワークショップや国際会議(後のB-Methodを含むZB国際会議)を主催し、技術的な議論を深める場を提供しました。

2002年にはISOによる標準化(ISO/IEC 13568)が完了し、世界的な共通規格となりました。Z表記法は多くの特殊記号を使用するため、ASCII文字やLaTeXでの表現方法、およびUnicodeエンコーディングが定義されており、デジタル環境での記述が容易になっています。

Z表記法の概要まとめ

Z表記法の主要特性まとめ
項目 内容
ベースとなる理論 集合論、述語論理、ラムダ計算
主要な構成要素 型システム、数学ツールキット、スキーマ
主な開発者 Jean-Raymond Abrial(およびオックスフォード大学の研究者ら)
国際標準 ISO/IEC 13568:2002
関連手法・言語 B-Method, VDM-SL, Object-Z, Alloy

Frequently Asked Questions

Z表記法とは具体的に何に使用されるものですか?

主にコンピュータプログラムや計算機システムの「形式仕様」を作成するために使用されます。自然言語ではなく数学的な記法を用いることで、システムの振る舞いを曖昧さなく定義し、設計段階での矛盾を排除することを目的としています。

「スキーマ」とはどのような機能ですか?

スキーマは、変数の宣言(宣言部)とそれらが満たすべき条件(述語部)を一つの枠組みにまとめたものです。このボックスを組み合わせることで、大規模で複雑な仕様をモジュール化して管理でき、記述の再利用性と可読性が向上します。

なぜZという名前がついているのですか?

開発者のアブリアル氏は「究極の言語(Ultimate language)だから」と述べていますが、同時にこの言語が依拠している「ツェルメロ=フレンケル集合論(Zermelo–Fraenkel set theory)」のZに由来しているとも考えられています。

Z表記法とB-Methodにはどのような関係がありますか?

どちらもジャン=レイモン・アブリアルによって開発に関わった形式手法です。Z表記法が仕様記述に重点を置いているのに対し、B-Methodはそこから実装へと導くリファインメント(精緻化)のプロセスをより重視した手法であり、密接に関連しています。

ISO標準化されたことでどのようなメリットがありましたか?

表記法や意味論(セマンティクス)が統一されたことで、異なる組織や国が同じ仕様書を正しく解釈できるようになりました。また、Unicodeなどの文字エンコーディングが定義されたことで、ツール開発や文書作成の互換性が確保されました。

References

  1. (2016). "The Z Notation: Whence the Cause and Whither the Course?" (PDF). Engineering Trustworthy Software Systems. . Vol. 9506. . pp. 103–151. :10.1007/978-3-319-29628-9_3.  .
  2. ; Habrias, Henri (April–June 2025). "Jean-Raymond Abrial: A Scientific Biography of a Formal Methods Pioneer". . 48 (2). : 71–80. :2604.07353. :10.1109/MAHC.2026.3685515.
  3. (1974), "Data Semantics", in Klimbie, J. W.; Koffeman, K. L. (eds.), Proceedings of the Working Conference on Data Base Management, , pp. 1–59
  4. (2011). "Greetings to Bertrand on the Occasion of his Sixtieth Birthday" (PDF). In Nanz, Sebastian (ed.). The Future of Software Engineering. . pp. 183–184. :10.1007/978-3-642-15187-3.  .
  5. Abrial, Jean-Raymond; Schuman, Stephen A; Meyer, Bertrand (1980), "A Specification Language", in Macnaghten, A. M.; McKeag, R. M. (eds.), On the Construction of Programs, ,   (describes early version of the language).
  6. ; Baudoin, Claude (1980), Méthodes de programmation (in French), Eyrolles
  7. (July 2022). "Ib Holm Sørensen: Ten Years After" (PDF). (2022–2). : 41–49. Retrieved 1 June 2026.
  8. (January 2026). "Memories of Jean-Raymond Abrial in Oxford, the Alps, and Paris" (PDF). . 2026 (1). : 66–78.
  9. Sørensen, Ib Holm (1981). Topics in program specification and design: specification and design of distributed systems Archived 31 July 2022 at the (DPhil). UK: , .
  10. ; (1996). "Acknowledgments". Using Z: Specification, Refinement, and Proof. International Series in Computer Science. .  .

📸 フォトギャラリー

An example of a formal specification (in Spanish) using the Z notation, with named schema boxes, including declarations and predicates
Jean-Raymond Abrial, the main originator of the Z notation