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