Введение

Формальный язык спецификации, используемый для описания и моделирования вычислительных систем.

Z-нотация (/z//ɛ//d/) — это формальный язык спецификации, применяемый для описания и моделирования вычислительных систем. Он предназначен для четкой спецификации компьютерных программ и компьютерных систем в целом.

История

В 1974 году Жан Рэймонд Абриал опубликовал книгу "Семантика данных". Он использовал нотацию, которая впоследствии преподавалась в Университете Гренобля до конца 1980-х годов. Работая в EDF (Électricité de France) совместно с Бертраном Мейером, Абриал также занимался разработкой Z. Нотация Z используется в книге "Méthodes de programmation", опубликованной в 1980 году. Впервые Z была предложена Абриалом в 1977 году при участии Стива Шумана и Бертрана Мейера. Дальнейшая разработка Z велась в исследовательской группе программирования Оксфордского университета, где Абриал работал в начале 1980-х годов, переехав в Оксфорд в сентябре 1979 года. Абриал утверждал, что Z получила свое название "потому, что это окончательный язык!", хотя имя "Зермело" также связано с Z-нотацией благодаря использованию теории множеств Зермело — Френкеля. В 1992 году была создана Группа пользователей Z (ZUG) для координации деятельности, связанной с Z-нотацией, в частности, организации встреч и конференций.

Использование и обозначение

Z основывается на стандартной математической нотации, используемой в аксиоматической теории множеств, лямбда-исчислении и логике предикатов первого порядка. Все выражения в нотации Z имеют тип, что позволяет избежать некоторых парадоксов наивной теории множеств. Z содержит стандартизированный каталог (называемый математическим инструментарием) часто используемых математических функций и предикатов, определенных средствами самого Z. Он расширен Z-схемами, которые можно комбинировать с помощью собственных операторов, основанных на стандартных логических операторах, а также путем включения схем внутрь других схем. Это позволяет создавать большие Z-спецификации удобным образом. Поскольку нотация Z (как и язык APL, задолго до него) использует множество символов, не входящих в ASCII, спецификация содержит рекомендации по представлению символов Z в ASCII и LaTeX. Также существуют кодировки Unicode для всех стандартных символов Z.