Справочник по Ada 2005
E.3 Согласованность распределенной системы
Этот пункт определяет атрибуты и правила, связанные с проверкой согласованности распределенной программы.
Статическая семантика
Для префикса P, который статически обозначает единицу программы, определены следующие атрибуты:
P'Version
Возвращает значение предопределённого типа String, которое идентифицирует версию единицы компиляции, содержащей объявление единицы программы.
P'Body_Version
Возвращает значение предопределённого типа String, которое идентифицирует версию единицы компиляции, содержащей тело (но не подединицы) единицы программы.
Версия единицы компиляции изменяется всякий раз, когда единица компиляции изменяется существенным образом с точки зрения семантики. Настоящий международный стандарт не определяет точное значение «существенного изменения с точки зрения семантики». Не определено, есть ли другие события (например, повторная компиляция), которые приводят к изменению версии единицы компиляции.
Если P не является единицей библиотеки и у P нет завершения, то P'Body_Version возвращает Body_Version самой внутренней единицы программы, охватывающей объявление P. Если P является единицей библиотеки и у P нет завершения, то P'Body_Version возвращает значение, отличное от Body_Version любой версии P, имеющей завершение.
Ограниченные (временно́й) ошибки
В распределённой программе единица библиотеки согласована, если для неё используется та же версия объявления во всех местах. Это ограниченная ошибка — выработать раздел распределённой программы, содержащий единицу компиляции, которая зависит от другой версии объявления общей пассивной или RCI-единицы библиотеки, чем та, которая включена в раздел, которому была назначена общая пассивная или RCI-единица библиотеки. В результате этой ошибки Program_Error может быть поднята в одном или обоих разделах во время разработки; в любом случае разделы станут недоступны друг для друга.