Н. Джехани - Язык Ада (1988) (1160771), страница 62
Текст из файла (страница 62)
грамму более понятнои. Примеры: — — последнее предложение выражает ту же мысль, что и — — в языке Алгол-68 епд; — — обработка Ь(НЕ завершена — — длинный комментарии может быть разбит на — — две или несколько последовательных строчек — — — — — — — первые два дефиса начинают комментарий Примечание.
Горизонтальная табуляция может быть использована в комментариях после двух дефисов, это эквивалентно одному ипи нескольким пробелам (см. 2,2) Ссылки: конец строчки 2.2, неправильный 1.6, правильный 1.6, символ пробела 2.1. 2.8. ПРАГМЫ Прагма используется для задания информации компилятору. Прагма начинается зарезервированным словом ргадгла, за которым следует идентификатор — имя прагмы.
Лвкоякв прагма с= ргв9гпа идентификатор [(сопоставление аргумента (, сопоставление аргумента ))]; сопоставление аргумента:: = ]идентификатор аргумента = > ] имя ) ]идентификатор аргумента = > ) выражение Прагмы допустимы только в следующих местах программы: ° После ограничителя точки с запятой, но не внутри раздела формальных параметров или раздела дискриминантов. В любом месте, где синтаксические правила допускают синтаксические понятия, в назва.
нии которых содержатся слова описаниеь оператор», «спецификатор» или «альтернатива», или одно из синтаксических понятий †вариа и обработчик исключений, но не вместо соответствующих конструкций, а также в любом месте, где допустим компилируемый модуль. На месторасположение отдельных прагм могут накладываться дополнительные ограничения. Некоторые прагмы имеют аргументы. Сопоставления аргументов могут быть либо позиционными, либо именованными, как и при сопоставлении параметров в вызовах подпрограмм (см. 6.4). Однако именованные сопоставления возможны, если определены идентификаторы аргументов. Именем аргумента должно быть либо имя, видимое в месте употребления прагмы, либо идентификатор, специфический для этой прагмы. Предопределенные прагмы описаны в приложении В; они должны поддерживаться в каждои реализации.
Реализация может определить дополнительные прагмы. Они должны быть описаны в приложении Е. Реализация не должна допускать определение прагм, наличие ипи отсутствие которых влияет на правильность текста программы. Следовательно, правильность программы не зависит от наличия или отсутствия прагм, определенных реализацией. Прагма, не определенная в языке, не дает никакого результата, если ее идентификатор не распознан (данной) реализацией.
Более того, прагма (как определенная в языке, так и определенная реализацией) не дает никакого результата, если ее размещение или ее аргументы не соответствуют допустимым для прагмы. Участок текста, на который распространяется действие прагмы, зависит от прагмы. Примеры: ргайгла МВТ(ОРР); рга9гпа ОРТ(М)2Е(Т(МЕ); ргаупв ИЧМНЕ(ВЕТМАВК); ргаупа 8()РРВЕ88(ВАНВЕ СНЕСК, ОН = ь )НОЕ)0; Примечание. Рекомендуется (но не требуется), чтобы реализация выдавала предупреждающие сообщения о прагмах, которые не распознаны и поэтому проигнорированы. Ссылки: вариант 3.7.3, видимость 8.3, выражение 4.4, компилируемый модуль 10.1, зарезервированное слово 2.9, идентификатор 2.3, имя 4.1, обработчик исключения 11.2, ограничитель 2.2, оператор 5, правильный 1.6, прагма, зависящая от реализации Р, прагма, зависящая от языка В, раздел дискриминантов 3.7.1, статическое выражение 4.9.
Понятие со словом описание: описание входа 9.5, описание компоненты 3.7, описание параметра настроики 12.1, основное описание 3.1. Понятие со словом «слецификагорш спецификатор выравнивания 13.4, спецификатор ис. пользования 8.4, спецификатор компоненты 13.4, спецификатор контекста !0.1.1, спецификатор представления 13.1, спецификатор совместности 10.1.1.
Понятие со словом «альтернативаш альтернатива завершения 9.7.1, альтернатива задержки 9.7.1, альтернатива оператора выбора 5.4, альтернатива отбора 9.7.1, альтернатива отбора с ожиданием 9.7.1, альтернатива принятия 9.7.1. 2.9. ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА Перечисленные ниже идентификаторы называются зарезервированными словами, они зарезервированы в языке для специального назначения. Для удобства чтения этого руководства зарезервированные слова пишутся строчными буквами полужирным шрифтом (после тире указан перевод слова). Глава 2 Зарезервированные слова не должны использоваться в качестве описываемого идентификатора. Примечание. Зарезервированные слова, отличающиеся только соответствующими строчными или прописными буквами, рассматриваются как одинаковые (см.
2.3). Идентификаторы некоторых атрибутов, стоящие после апострофа, совпадают с зарезервированными словами (ОЕЬТА, О)61ТЗ и ПАНСЕ). Ссылки: атрибут 4.1.4, идентификатор 2.3, описание 3.1, прописная буква 2.1, строчная буква 2.1. 2.10. ДОПУСТИМЫЕ ЗАМЕНЫ СИМВОЛОВ Для основных символов — вертикальной черты, номера и кавычки — допустимы следующие замены: ° Символ вертикальной черты ()) можно заменить восклицательным знаком (1) там, где он используется как ограничитель. ° Символ номера (ш) в литерале с основанием можно заменить двоеточием (:) при условии, что в этом литерале заменяются оба символа номера.
Символ кавычки ("), использованный как строковая скобка на обоих концах строкового литерала, можно заменить символом процента (%), если последовательность символов строкового литерала не содержит символа кавычки и если в этом литерале заменяются обе строковые скобки.
Для представления символа процента внутри последовательности символов стро. кового литерала должна использоваться пара соседних символов процента, которая рассматривается как один символ процента. Эти замены не изменяют смысла программы. абоп аЬв эссер! асеева ай апб апау аз ВАМ Ьойу саве сопв(аЫ бес1аге бе)ау бейл б)ййв до е!ее е1вй епд епйу ехсерйоп ехй 1ог (цпсйоп репе!)с Во!о й !п М 1в 1)гойей прекращение аЬз принятие ссылка на все и массив положение начало тело выбор константа описание задержка дельта цифр выполнение иначе инесли конец вход исключение выход для функция настройка переход на если из вх есть лимитируемый 1оор глод пев по( пи( о! ог о(йегв огп раскайе ргайгла рг)уа(е ргосебмге га1ае галде гесогб гегп гела геев гезмгп геуегве ве1ес1 зерага!а вмЫуре !авк (еппМа(е Елеп !Уре мве вйеп вМ!в вйй хог — цикл — по мод — новый — не — пусто — из — или — другие — вых — пакет — прагма — личный — процедура — возбуждение — диапазон — запись — остаток — синоним — возврат — в обратном порядке — отбор — отдельно — подтип — задача — завершение — то — тип — использование — когда — пока — совместно с — либо Лексике Примечание.
Рекомендуется, чтобы замена символов вертикальной черты, номера и кавычки была ограничена случаями, когда соответствующих графических символов нет на терминалах. Заметим, что вертикальная черта изображается на некоторых устройствах прерывистой линией, замена в этом случае не рекомендуется. Правила дпя идентификаторов и числовых литералов таковы, что строчные и прописные буквы эквивалентны; эти лексемы могут быть записаны только символами основного набора.
Если строковый литерал предопределенного типа ЗТН1ЙВ содержит символы не из основного набора, гаже самая последовательность значений символов может быть получена катенацией строковых литералов, содержащих символы основного набора, и символьных констант, описанных в предопределенном пакете АЗСИ. Таким образом, строковый литерал "АВЗС0 можно заменить на "АВ 6 АЗСИ.ВОЫАВ 6 "С0", а строковый литерал 'АВсб" со строчными буквами можно заменить на "АВ 6 АЗСИ.~С С Ь АЗСИ.~С О. Ссылки: графический знак 2.1, графический символ 2.1, значение символа 3.5.2, идентификатор 2.3, лексема 2.2, литерал с основанием 2.4.2, ограничитель 2.2, операция катенации 4.5.3, основной символ 2.1, предопределенный пакет АЗСИ С, прописная буква 2.1, строковая скобка 2.6, строковый литерал 2.6, строчная буква 2.1, числовой литерал 2.4. Глава Э ОПИСАНИЯ И ТИПЫ Эта глава описывает типы и правила описания констант, переменных и именованных чисел.
3.1. ОПИСАНИЯ В языке определены понятия, объявляемые явно или неявно описаниями. К таким понятиям относятся, например: числовой литерал, объект, дискриминант, компонента записи, пара. метр цикла, исключение, тип, подтип, подпрограмма, пакет, задачный модуль, настраиваемый модуль, одиночный вход, семейство входов, формальный параметр (подпрограммы, входа, на. страиваемои подпрограммы), формальный параметр настройки, именованный блок или цикл, помеченный оператор, а также операция (в частности, атрибут или литерал перечисления, см. 3.3.3). Существует несколько форм описаний.