Н. Джехани - Язык Ада (1988) (1160771), страница 4
Текст из файла (страница 4)
е. ее можно компилировать и выполнять. Спецификатор зч1(й указывает, что программе САЬСШ.АТОК необходимо использовать предопределенный пакет ТЕХТ-1О„содержащий средства ввода и вывода текстов. Спецификатор пзе позволяет обращаться к подпрограммам в пакете ТЕХТ 1О из программы СА1.С1Л.АТОК, не указывая явно, что они принадлежат пакету ТЕХТ 1О. Пакет ТЕХТ 1О содержит подпрограммы ввода и вывода значений для некоторых предопределенных типов (например, СНАКАСТЕК), в то время как для других типов он содержит шаблоны подпрограмм.
Используя шаблон РЬОАТ 10 для входных и выходных данных с плавающей точкой, предоставляемый пакетом ТЕХТ 1О, описание рас(саве 1О КЕАЬ (в пезч РЬОАТ 1О(КЕАЬ); создает пакет, содержащий подпрограммы ввода и вывода для значений плавающего типа КЕА1.. Оставшаяся часть данной главы охватывает детали и обсуждение средств традиционной части языка Ада. В первом разделе обсуждаются основные элементы языка. Затем идут разделы, посвягценные типам, выражениям, операторам, подпрограммам, правилам видимости, вводу и выводу, главным программам и модулям компиляции, прагмам и, наконец, примерам программ.
1.1. Основные понятия [21 Основное множество символов языка Ада состоит из прописных букв, цифр, специальных символов "?вес'()*+,—./:;< = > ) и пробела. Расширенное множество символов, которое может не поддерживаться всеми реализациями языка Ада, содержит 95 символов кода АБСП. Оно содержит строчные буквы и дополнительные специальные символы !З о?©1'] '( ) Ввв виив Любую программу на языке Ада можно написать, используя только основное множество символов. Каждая программа может быть преобразована в эквивалентную, в которой используются только символы основного множества.
Строчные буквы эквивалентны прописным, за исключением тех, которые находятся внутри строки или символьного литерала. Идентигрикаторы начинаются с буквы, за которой могут следовать любая буква или цифра и одиночные символы подчеркивания. Идентификаторы, отличающиеся только строчными н прописными буквами в соответствующих позициях, считаются одинаковыми. Числовые литералы бывают двух типов — целые и вещественные, например 12 12,0 1.2Е1 (или 1.2е1) Одиночные символы подчеркивания можно вставлять между соседними цифра- ми, чтобы облегчить чтение, например 12 000 — 000 Литералы можно записывать в системе счисления, отличной от десятичной.
Например, десятичное число 61.0 можно записать по основанию 8 как 88|75.0|й или 8К|7.5хеЕ1 где 1 во втором примере — это порядок. Основание и порядок записываются в десятичной системе. Для оснований, больших 10, используются буквы от А до Г как расширенные цифры '. Символьный литерал образуется путем заключения символа в одиночные апострофы. Например, символы А, *, ' и пробел обозначаются как е Строка — это последовательность из нуля или более графических символов, заключенная в двойные кавычки.
Символ двойной кавычки ", включаемый в строку, повторяется дважды. Катенация, обозначаемая й, используется для представрения строк, не умещающихся на одной физической строке, а также для строк, содержащих управляющие литеры. Например, строками являются: "А" "А поппа! з|г!п8" "Т)г!з !а а чету чету чету чегу чету чету чету чету чегу чету "8| "1оп8 а|пп8 " "ТЬ!з з(г!п8 соп|ашз" й АБС11С|е йАБС11З.Е 8| "соп|го1 с!|агас|егз" Заметим, что определены символы возврата каретки и перевода строки (АСС!1. Сгс и АСС!1.
ЬР). В языке Ада на этот счет не делается никаких указаний. Они иаглортируются из пакета АСС!1 путем указания соответствующего идентификатора, как это будет пояснено позже. Примечания начинаются с двух дефисов в любом месте строки и заканчиваются в конце строки: " Наибольшее основание, следовательно, |б. Глава 1 — все операторы языка Ада должны заканчиваться точкой с запятой Ы МОХТН = РЕСЕМВЕК апе) РАУ = 31 Гйеп — конец года УЕАК: = к'ЕАК -> 1;. епе] Ы; В языке Ада имеются идентификаторы, которые называются зарезервированными словами (2.9] и которым приписан определенный смысл. Зарезервированные слова нельзя использовать как имена объектов в программе.
Зарезервированные слова напечатаны полужирным шрифтом. Символы, не принадлежащие основному множеству, можно транслитерировать в основное множество символов путем использования идентификаторов, которые представляют их в пакете АБСП (приложение С руководства по языку ]РОР83]).
Например, '3' представляется идентификатором 13ОЬЬАК в пакете АГАСИ, поэтому альтернативное указание с использованием основного множества символов есть АБС1Ь1)ОЬЬАК. Такое альтернативное указание необходимо использовать в тех реализациях языка Ада, в которых обрабатывается только основное множество символов. В подобной ситуации строку " ЗАМО1) ХТ " необходимо записать как АБСП.РОЬЬАК 8с "АМО1э'ХТ" Для отсутствующих символов разрешены следующие замены: можно заменить на ! Ке можно заменить на: основание системы счисления можно заменить на еуе, служащий концом строки в предположении, что строка не содержит "". Любой символ е7в в строке тогда нужно записать дважды.
Строка, содержащая ", представляется путем катенвции и альтернативного указания из АГАСИ пакета, т. е. АБС1ЬО]3ОТАТ1ОХ 1.2. Типы, константы и переменные [3] Тил — это множество значений плюс множество операций, которые можно выполнить над значениями ]МОК73]. Обаекгл — это некоторая сущность, ассоциированная с типом; значение этого типа также ассоциировано с этим объектом. Объект создается, а его тип определяется с помощью описания. В языке Ада все объекты должны быть явно описаны". Объекту при его описании можно задать начальное значение (которое считается по умолчанию начальным значением, ассоциированным с типом объекта).
Существуют два вида объектов — констанлзы и леремевньге. Значение константы изменять нельзя, но значение переменной можно изменить. " Переменная цикла является исключением из этого правила. Она описывается неявно своим появлением в заголовке цикла.
г! Вив влив 1.2.1. Определение обьектов Определения объектов имеют форму": список иденти(рикаторовс [сопи(ап(1 Т 1: = выражение); список идентиЯикаторовг сопл!вне = (ь(; где Т вЂ” имя типа или подтипа с факультативным ограничением или определение ограниченного индексируемого типа, выражение — начальное значение, присваиваемое объекту, а )з( — статическое выралсение (т. е. выражение, вычисляемое во время компиляции). Ограничение — это сокращение множества возможных значений типа, с которым оно связано. (Подтип представляет собой тип, но с ограничением соответствующего множества значений; каждый тип — это свой собственный подтип.) 1.2.1.1.
Примеры определений констант !3.2.Ц Р1: сопи(апг Н.ОАТ:= 3.1416; — вещественная константа с плавающей точкой (з(О Ы(з(ЕВ, )з(О %ОКРВ: сопл!ив( 1ХТЕОЕК:= 1000; — целая константа (з(О ВУТЕЯ: сопл(апГ 1(ь(ТЕОЕК:= (з(О уЮКТ)бе4; — инициализация выражением; хотя данное выражение — статическое, в общем случае инициализирующее выражение — не обязательно должно быть статическим ОКЕЕТ 1: сопыап( ВТК1)з(О: = "%е)соп(е"; — ВТК()ь(Π— это предопределенный тип; — длина строки определяется инициализирующим выражением СКЕЕТ 2: сопи(апг АНТК!)ь(О: = ОКЕЕТ 1 вс АВС11.СК ос АСС!1.[.Р ос "Т)з(з В 0(е д(зр)ау ед((ог"; — заметим, что константа определяется на двух строках и — что обе части приветствия располагаются на разных физических — строках в связи с использованием символов возврата каретки и — перевода строки %ЕЕК: сопя!апГ актау (!.7) оГ (зАУ (ЯЛз(, МО(з(, Т()Е, %ЕР, ТН(), РК1, ВАТ); — массив с компонентами типа ПАХ, определяется пользователем, его — элементы инициализируются соответствующими днями недели, — которые являются значениями типа РАз'.
— При инициализации используется позиционное сопоставле— ние, т. е. %ЕЕК(1)=ЯЛз( и т. д. и В расширеннои БНФ-нотации, как она использована в руководстве по языку Ада, применяются следующие обозначения: . (а) факультативный выбор а . (а) нуль или более раз появление а . а (Ь выбор между а и Ь Выделение полужирным шрифтом и ббльшими размерами метасимволов РБНФ ( ) ( ) и ( позволяет отличить их от соответствуюших символов языка Ада ( ) ( ] и Глава у А: сопи(ап! апау (1..10) 01 ВОО1.ЕАХ: = (1..10 = > РАЬБЕ); — все элементы этого логического массива константы — с начальными значениями РАЬЕЕ.