Глава 3. ОПИСАНИЯ И ТИПЫ

Содержание

3.1. ОПИСАНИЯ
3.2. ОБЪЕКТЫ И ИМЕНОВАННЫЕ ЧИСЛА
3.3. ТИПЫ И ПОДТИПЫ
3.4. ПРОИЗВОДНЫЕ ТИПЫ
3.5. СКАЛЯРНЫЕ ТИПЫ
3.6. ИНДЕКСИРУЕМЫЕ ТИПЫ
3.7. ИМЕНУЕМЫЕ ТИПЫ
3.8. ССЫЛОЧНЫЕ ТИПЫ
3.9. РАЗДЕЛЫ ОПИСАНИЙ

Эта глава описывает типы и правила описания констант, переменных и именованных чисел.

3.1. ОПИСАНИЯ

В языке определены понятия, объявляемые явно или неявно описаниями. К таким понятиям относятся, например: числовой литерал, объект, дискриминант, компонента записи, параметр цикла, исключение, тип, подтип, подпрограмма, пакет, задачный модуль, настраиваемый модуль, одиночный вход, семейство входов, формальный параметр (подпрограммы, входа, настраиваемой подпрограммы), формальный параметр настройки, именованный блок или цикл, помеченный оператор, а также операция (в частности, атрибут или литерал перечисления, см. 3.3.3).

Существует, несколько форм описаний. Основное описание — это форма описания, определенная следующим образом:

основное-описание ::=  описание-объекта        | описание-числа| описание-типа           | описание-подтипа| описание-подпрограммы   | описание-пакета| описание-задачи         | описание-настройки| описание-исключения     | конкретизация-настройки| описание-переименования | описание-субконстанты

Некоторые формы описания всегда являются (явно) частью основного описания, а именно:спецификация дискриминантов, описание компонент, описание входов, спецификация параметров, описание параметров настройки и спецификации литералов перечисления. Спецификация параметра цикла — это конструкция, которая входит только в некоторые формы оператора цикла.

Остальные формы описания являются неявными: имя блока, имя цикла и метка оператора. Некоторые операции описываются неявно (см. 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, описание объекта 3.2.1, описание пакета 7.1, описание параметра настройки 12.1, описание переименования 8.5, описание подпрограммы 6.1, описание подтипа 3.3.2, описание субконстанты 7.4, 3.9, описание типа 3.3.1, описание числа 3.2.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.