ГОСТ Р 59791—2021
7 Совместимость
7.1 Совместимость диалектов
7.1.1 Синтаксис
Диалект определяют на основе определенного набора надписей, который необходимо указать.
Обычно в его качестве выступают строки символов Юникода (как указано в [6]), но возможно и исполь
зование других надписей, например схематических представлений, таких как ориентированные графы
и структурированные изображения. Для диалекта необходимо указать метод, который будет однознач но
анализировать все надписи в наборе или отклонять их как синтаксически недопустимые. Для над писей
в строках символов Юникода грамматика в EBNF является достаточно точным определением. Анализ
— это присвоение каждой части допустимой надписи соответствующей категории абстрактного
синтаксиса CL, описанной в 6.1.1. Грамматически разобранная надпись является выражением.
Диалект, который содержит только некоторые типы выражений CL, считают синтаксически непол
ным диалектом CL или синтаксически частично совместимым диалектом. В частности, диалект, кото
рый не включает маркеры последовательности, но в остальном является полностью совместимым, из
вестен как синтаксически компактный диалект. Описание некоторых отношений между синтаксической
и семантической совместимостью см. в 7.1.
Диалект является синтаксически полностью совместимым, если в ходе его анализа есть возмож
ность распознать выражения для каждой категории абстрактного синтаксиса из 6.1.1. Для обеспечения
совместимости с CL диалекты или субдиалекты, анализ которых включает другие категории высказыва
ний, должны либо (а) классифицировать их как нерегулярные высказывания, либо (б) определять, как
эти категории сопоставляются с абстрактными синтаксическими категориями, определенными в 6.1.1.
Если диалект удовлетворяет условию (а), такой диалект или субдиалект следует называть семанти
ческим расширением (см. 6.1.2). Он является совместимым как синтаксический субдиалект, если при
знает хотя бы одну из категорий CL. При этом любой диалект должен признавать определенную фор му
категории высказывания. Выделяют три частных случая синтаксического субдиалекта. Компактный
субдиалект — это диалект, который не признает маркеры последовательности. Инструктированный
субдиалект — это диалект, который не распознает заголовки и операторы импорта. Субдиалект одной
предметной области — это диалект, который не распознает ограничения предметной области.
Диалект является синтаксически сегрегированным, если в ходе его анализа необходимо разли
чать лексические категории имен CL для проверки допустимости выражения на этом диалекте. Сегреги
рованные диалекты должны содержать критерии, достаточные для выявления приложением категории
имени в диалекте без выполнения каких-либо операций с другими структурами помимо имени.
7.1.2 Семантика
Любой диалект CL должен иметь теоретико-модельную семантику, определенную на примере
множества интерпретаций, называемых диалектными интерпретациями. Такая семантика присваивает
одно из двух значений истинности —
true
или
false
— каждому утверждению, высказыванию или тексту на
этом диалекте.
Диалект является семантически слабо совместимым, если для любого синтаксически допусти
мого предложения (кроме комментария) или текста Т на этом диалекте существует сопоставление
tr
между выражениями на диалекте и выражениями с абстрактным синтаксисом CL, сопоставление
mod
между интерпретациями CL и диалектными интерпретациями, а также выполняется следующее усло
вие совместимости:
-
mod(\)
подразумевает Т, только если I подразумевает
tr(
Т) для каждой интерпретации CL I
tr(
Т).
Диалект является семантически полностью совместимым, если для любого синтаксически допу
стимого высказывания, утверждения (кроме комментария) или текста Т на этом диалекте существует
сопоставление
tr
между выражениями на диалекте и выражениями с абстрактным синтаксисом CL, а
также выполняется следующее условие совместимости:
- текст Т подразумевается Т, только если
tr(T)
подразумевается
tr(
Т).
Диалект является широко совместимым в случае его слабой семантической совместимости, и при
этом
mod
является сюръективным сопоставлением.
Диалект является семантически совместимым с субъязыком, если для любого синтаксически до
пустимого высказывания, утверждения (кроме комментария) или текста Т на этом диалекте существует
сопоставление
tr
между выражениями на диалекте и выражения с абстрактным синтаксисом CL, сопо-
21