Справочное руководство по языку Ада-83

         

Метод описания и синтаксические обозначения


Контекстно-свободный синтаксис программных модулей языка Ада вместе с контекстно-зависимыми требованиями выражается правилами в повествовательной форме.

Семантика программных модулей описана правилами определения результата выполнения каждой конструкции и правилами их построения. В изложении используются термины, точное определение которых дано в тексте (ссылки на содержащие определения разделы помещены в конце каждого использующего понятие раздела).

Все другие понятия имеют свое естественное значение, определенное в словаре русского языка Ушакова [2] .

Контекстно-свободный синтаксис языка описывается с помощью простого варианта форм Бэкуса-Наура. В частности:

а) Записанные строчными буквами слова, возможно содержащие в некоторых случаях символ подчеркивания, используются для обозначения синтаксических понятий, например:

аддитивная - операция

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

б) Полужирным шрифтом выделены зарезервированные слова, например:

array

в) В квадратные скобки заключены необязательные элементы. Поэтому два следующих правила эквивалентны:

оператор-возврата ::= return [выражение];

оператор-возврата ::= return; | return выражение;

г) Повторяющиеся элементы заключаются в фигурные скобки. Этот элемент может встретиться нуль или более раз; повторение осуществляется слева направо в соответствии с правилом левой рекурсии. Таким образом, два следующих правила эквивалентны:

слагаемое ::= множитель (операция-умножения множитель)

слагаемое ::= множитель 1 слагаемое операция-умножения множитель

д) Вертикальная черта разделяет альтернативные элементы, кроме тех случаев, когда черта встречается непосредственно за открывающейся фигурной скобкой, тогда она обозначает знак вертикальной черты:

буква-или-цифра ::= буква 1 цифра

сопоставление-компонента ::= [выбор (I выбор) =>] выражение

е) Если название какого-нибудь синтаксического понятия содержит выделенную курсивом часть, оно эквивалентно названию синтаксического понятия без выделенной курсивом части. Выделенная курсивом часть предназначена для выражения некоторой семантической информации. Например, имя-типа и имя-задачи эквивалентны просто понятию имя.

Примечание. Описывающие структурные конструкции синтаксические правила представлены в форме, соответствующей рекомендованному делению на абзацы. Например, условный оператор определяется так:

условный-оператор ::= if условие then последовательность - операторов {elsif условие then последовательность - операторов} [else последовательность - операторов] end if;

Синтаксические правила записываются в несколько строчек, если соответствующие части конструкции рекомендуется располагать на разных строчках. Все отступы от начала строчки рекомендованы в правилах для сдвига соответствующих частей конструкции. Все отступы должны быть кратны базовому шагу отступа (число пробелов в базовом шаге не определяется). Переход на новую строчку рекомендуется после точки с запятой. С другой стороны, если вся конструкция умещается на одной строчке, то это также допустимо.


[2] В оригинале: третий новый международный словарь английского языка Уэбстера. - Прим. перев. стр.360



Содержание раздела