Контекстно-свободный синтаксис программных модулей языка Ада вместе с контекстно-зависимыми требованиями выражаются в повествовательной форме.
Семантика программных модулей описана правилами определения результата выполнения каждой конструкции и правилами их построения. В изложении используются термины, точное определение которых дано в тексте.
Все другие понятия имеют свое естественное значение, определенное в словаре русского языка Ушакова*.
________________
* Толковый словарь русского языка/Под ред. Д.Н.Ушакова. - М.: Государственное издательство иностранных и национальных словарей, 1938.
Контекстно-свободный синтаксис языка описывается с помощью простого варианта форм Бэкуса-Наура, в частности:
а) Записанные строчными буквами слова, возможно содержащие в некоторых случаях символ подчеркивания, используются для обозначения синтаксических понятий, например:
аддитивная_операция
В названиях синтаксических понятий, используемых вне контекста синтаксических правил, вместо символа подчеркивания используется пробел, например:
аддитивная операция
б) Полужирным шрифтом выделены зарезервированные слова, например:
array
в) В квадратные скобки заключены необязательные элементы. Поэтому два следующих правила эквивалентны:
оператор возврата : : = return [выражение];
оператор возврата : : = return ; return выражение;
г) Повторяющиеся элементы заключаются в фигурные скобки. Этот элемент может встретиться нуль или более раз; повторение осуществляется слева направо в соответствии с правилом левой рекурсии. Таким образом, два следующих правила эквивалентны:
слагаемое : : = множитель {операция_умножения множитель}
слагаемое : : = множитель слагаемое операция_умножения множитель
д) Вертикальная черта разделяет альтернативные элементы, кроме случаев, когда черта встречается непосредственно за открывающей фигурной скобкой, тогда она обозначает знак вертикальной черты:
буква_или_цифра : : = буквацифра
сопоставление_компонентов : : =
[выбор {выбор} = >] выражение
е) Если название какого-нибудь синтаксического понятия содержит выделенную курсивом часть, оно эквивалентно названию синтаксического понятия без выделенной курсивом части. Выделенная курсивом часть предназначена для выражения некоторой семантической информации. Например, имя_типа и имя_задачи эквивалентны просто понятию имя.
Примечание. Описывающие структурные конструкции синтаксические правила представлены в форме, соответствующей рекомендованному делению на абзацы. Например, условный оператор определяется так:
условный оператор : : = | |||||
if условие then | |||||
последовательность_операторов | |||||
{elsif условие then | |||||
последовательность_операторов} | |||||
[else | |||||
последовательность_операторов] | |||||
end if; |
Синтаксические правила записываются в несколько строк, если соответствующие части конструкции рекомендуется располагать на разных строчках. Все отступы от начала строчки рекомендованы в правилах для сдвига соответствующих частей конструкции. Все отступы должны быть кратны базовому шагу отступа (число пробелов в базовом шаге не определяется). Переход на новую строчку рекомендуется после точки с запятой. Допускается размещение всей конструкции в одной строчке.