Н. Джехани - Язык Ада (1988) (1160771), страница 63
Текст из файла (страница 63)
Основное описание — это форма описания, определенная следующим образом: основное описание::= описание объекта описание типа описание подпрограммы описание задачи описание исключения описание переименования описание числа описание подтипа описание пакета описание настройки конкретизация настройки описание субконстанты Некоторые формы описания всегда являются (явно) частью основного описания, а именно: спецификация дискриминантов, описание компонент, описание входов, спецификация параметров, описание параметров настройки и спецификации литералов перечисления. Спецификация параметра цикла — это конструкция, которая входит только в некоторые формы опера.
тора цикла. Остальные формы описания являются неявными: имя блока, имя цикла и метка оператора. Некоторые операции описываются неявно (см. 3.3.3). Для каждой формы описания правила языка определяют некоторый участок текста, называемый областью действия описания (см. 8.2). Несколько форм описания связывают идентификатор с описанным понятием. Внутри его области действия, и только в ней, существуют места, где возможно использование идентификатора для связи его с описанным понятием; эти места определяются правилами видимости (см.
8.3.). В таких местах идентификатор называют именем понятия (простым именем); говорят, что имя обозначает связанное с ним понятие. Определенные формы спецификации литерала перечисления связывают символьный литерал с соответствующим описываемым понятием. Некоторые формы описаний связывают символ операции или другие обозначения с явно или неявно описанной операцией. Процесс, в результате которого описание вступает в силу, называется предеыполнением описания; этот процесс протекает во время выполнения программы. Говорят, что после своего предвыполнения описание становится лредеылолненным. До завершения своего предвыполнения (как и до его начала) описание считается еще не предвыполненным.
Предвыполнение любого описания дает всегда по крайней мере один эффект: описание из еще не предвыполненного становится предвыполненным. Фраза предвылолнение не дает другого эффекта используется тогда, когда происходит только изменение статуса описания. Процесс предвыполнения определяется также для разделов описаний, элементов описания и компилируемых модулей (см. 3.9 и 10.5). Описания объекта, числа, типа и подтипа даны в этой главе, Остальные основные описания изложены в последующих главах. Описания и гнпы Примечание.
Синтаксические правила используют термин идентификатор для первого вхождения идентификатора в некоторую форму описания; термин простое имя используется для любого вхождения идентификатора, который уже обозначает какое-либо описанное понятие. Ссылки: атрибут 4.1.4, видимость 8.3, знак операции 6.1, идентификатор 2.3, имя 4.1, имя блока 5.6, имя цикла 5.5, компонента записи 3.7, конкретизация настройки 12.3, метка 5.1, область действия 8.2, оператор блока 5.6, оператор цикла 5.5, операция типа 3.3, описание входа 9.5, описание задачи 9.1, описание исключения 11.1, описание компоненты 3.7, описание настройки 12.1, описание объекта 32.1, описание пакета 7.1, описание параметра настройки 12.1, описание переименования 8.5, описание подпрограммы 6.1, описание подтипа 3.3.2, описание субконстанты 7.4, 3.9, описание типа 3.3.1, описание числа 32.2, предвыполнение 3.9, простое имя 4.1, раздел описаний 3.9, символьный литерал 2.5, спецификатор представления 13.1, спецификация дискриминанта 3.7.1, спецификация литерала перечисления 3.5.1, спецификация параметра 6.1, спецификация параметра цикла 5.5, тело подпрограммы 6.3, числовой литерал 2.4, элемент описания 3.9.
3.2. ОБЪЕКТЫ И ИМЕНОВАННЫЕ ЧИСЛА Объект — это понятие языка; объект имеет (содержит) значение данного типа. Объектом может быть: ° объект, объявленный в описании объекта ипи в описании одиночной задачи; ° формальный параметр подпрограммы, входа ипи настраиваемой подпрограммы; ° формальный объект настройки; ° параметр цикла; ° объект, указанный значением ссылочного типа; ° компонента или отрезок другого объекта. Описание числа — это специальная форма описания объекта, которая связывает идентификатор со значением типа универсальный целый ипи универсальный вещественный.
описание объекта::= список идентификаторов: [сопв1ап(] указание подтипа [:= выражение]; список идентификаторов: [сопв(ап(] определение ограниченного индексируемого типа [:= выражение]; описание числа::= список идентификаторов : сола(ап(: = универсальное статическое выражение; список идентификаторов::= идентификатор [, идентификатор] Описание объекта называется единичным описанием объекта, если список его идентификаторов имеет единственный идентификатор; оно называется групповым описанием объектов, если его список имеет два или несколько идентификаторов.
Групповое описание объектов эквивалентно последовательности соответствующего числа единичных описаний объектов. Для каждого идентификатора из списка в такой эквивалентной последовательности единичное описание объекта формируется из идентификатора, двоеточия и всего того, что стоит справа от двоеточия в групповом описании объекта; описания в эквивалентной после. довательности идут в том же порядке, что и список идентификаторов. Аналогичная эквивалентность имеет место также для списка идентификаторов описания числа, описаний компонент, спецификаций дискриминантов, спецификаций параметров и описаний параметров настройки, исключений и субконстант.
В остальной части описания языка все пояснении даны для описаний с единственным идентификатором; соответствующие пояснения для описаний с несколькими идентификаторами следуют из эквивалентности, установленной выше. Примеры: — — групповое описание объектов 4ОНМ, РА(д: РЕЯЗОМ МАМЕ:= пем РЕН8ОМ(6ЕХ = > )4); — — см. 3.8.1 — — эквивалентно единичным описаниям объектов, — — следующим в данном порядке 4ОНМ: РЕНЗОМ МАМЕ:= пем РЕВАЗОМ(8ЕХ = > М); РАОЕ: РЕНЗОМ МАМЕ:= пвм РЕЙЗОМ(ЗЕХ = > )4); Глава 3 Ссылки: вход 9.5, выражение 4.4, идентификатор 2,3, компонента З.З, настраиваемая под. программа 12.1, настраиваемый модуль 12, настраиваемыи формальный объект 12.1.1, область действия 8.2, описание 3.1, описание исключения 11.1, описание одиночной задачи 9.1, описание параметра настройки 12.1, описание субконстанты 7.4, определение индексируемого типа 3.6, отрезок 4.1.2, параметр цикла 5.5, подпрограмма 6, простое имя 4.1, спецификация дискриминанта 3.7.1, спецификация параметра 6.1, ссылочный тип 3.8, статическое выражение 4.9, тип 3.3, тип универсальный вещественный 3.5.6, тип универсальный целыи 3.5.4, указание подтипа 3.3.2, указывать 3.8, формальный объект настройки 12.1.1, формальный параметр 6.1, числовой тип 3.5.
3.2.1. ОПИСАНИЯ ОБЪЕКТОВ Описание объектов вводит объект, тип которого задан либо указанием подтипа, либо определением индексируемого типа. Если описание объекта включает составной ограничительприсваивание, за которым следует выражение, то это выражение определяет начальное значение описываемого объекта; тип выражения должен быть тем же, что и тип объекта. Описываемыи объект — константа, если в описании объекта присутствует зарезервиро. ванное слово сопв)ап(. В этом случае описание должно включать явную инициализацию.
Значение константы не может быть изменено после инициализации. Формальные параметры вида )и подпрограмм и входов, а также формальные параметры настроики вида (л являются константами; параметр цикла — константа в соответствующем цикле; подкомпонента или отрезок константы тоже константа. Объект, не явпяющиися константой, называется переменной (в частности, объект, задан.
ный описанием объекта без зарезервированного слова сопв(ап1, является переменной). Для. изменения значения переменной существует только два пути: непосредственное присваивание и косвенное изменение (см. 6.2) оператором вызова процедуры или входа (это деиствие может быть выполнено над самой переменной, над подкомпонентой переменнои либо над другои переменной, для которой данная является подкомпонентой).
Предвыполнение описания объекта происходит следующим образом: а. Устанавливается подтип объекта посредством предвыпалнения указания подтипа или определения ограниченного индексируемого типа. б. Если описание объекта включает явную инициализацию, то его начальное значение получается вычислением соответствующего выражения. В противном случае вычисляются неяв. ные начальные значения (если они есть) объекта или его подкомпонент. в. Создается объект. г. Начальное значение (заданное явно или по умолчанию) присваивается объекту или соответствующей подкомпонентв. Неявные начальные значения определяются для объектов, заданных описанием объекта, и для компонент таких объектов в следующих случаях: ° Для объекта ссылочного типа — его неявное начальное значение равно пустому значению ссылочного типа.