Справочник Ada 95
3.1 Объявления
Язык определяет несколько типов именованных сущностей, которые объявляются при помощи объявлений. Имя сущности определяется объявлением, обычно с помощью идентификатора, но иногда с помощью литерала символьного значения или символа оператора.
Существуют различные формы объявления. Базовое_объявление — это форма объявления, определенная следующим образом.
Синтаксис
basic_declaration ::=
type_declaration | subtype_declaration
| object_declaration | number_declaration
| subprogram_declaration | abstract_subprogram_declaration
| package_declaration | renaming_declaration
| exception_declaration | generic_declaration
| generic_instantiation
type_declaration | subtype_declaration
| object_declaration | number_declaration
| subprogram_declaration | abstract_subprogram_declaration
| package_declaration | renaming_declaration
| exception_declaration | generic_declaration
| generic_instantiation
defining_identifier ::= identifier
Статические семантики
Объявление — это конструкция языка, которая связывает имя с (представлением) сущности. Объявление может быть явно указано в тексте программы (явное объявление) или может предполагаться в определённом месте текста как следствие семантики другой конструкции (неявное объявление).
Каждое из следующего является объявлением: любое базовое_объявление; перечисление_литералов; описание_дискриминанта; компонент_объявление; цикл_параметр_описание; параметр_описание; тело_подпрограммы; объявление_входа; описание_индекса_входа; описание_параметра_выбора; объявление_параметра_формального_генератора.
Все объявления содержат определение для представления сущности. Представление состоит из идентификации сущности (сущности из представления), плюс характеристики, специфичные для представления, которые влияют на использование сущности через это представление (например, режим доступа к объекту, имена формальных параметров и значения по умолчанию для подпрограммы или видимость компонентов типа). В большинстве случаев объявление также содержит определение самой сущности ( переименование_объявление — пример объявления, которое не определяет новую сущность, а вместо этого определяет представление существующей сущности (см. 8.5)).
Для каждого объявления правила языка определяют определённую область текста, называемую областью видимости объявления (см. 8.2). Большинство объявлений связывают идентификатор с объявленной сущностью. В пределах области видимости, и только там, есть места, где можно использовать идентификатор для ссылки на объявление, представление, которое оно определяет, и связанную сущность; эти места определяются правилами видимости (см. 8.3). В таких местах идентификатор называется именем сущности (прямое_имя или имя_селектора); имя обозначает объявление, представление и связанную сущность (см. 8.6). Объявление объявляет имя, представление и, в большинстве случаев, саму сущность.
В качестве альтернативы идентификатору литерал перечисления может быть объявлен с литералом_символа в качестве его имени (см. 3.5.1), а функция может быть объявлена с символом_оператора в качестве её имени (см. 6.1).
Синтаксические правила используют термины определяющий_идентификатор, определяющий_литерал_символа и определяющий_символ_оператора для определяющего вхождения имени; эти термины коллективно называются определяющими именами. Термины прямое_имя и имя_селектора используются для вхождений идентификаторов, литералов_символов и символов_операторов. Они коллективно называются именами_использования.
Динамические семантики
Процесс, посредством которого конструкция достигает своего результата во время выполнения, называется выполнением. Этот процесс также называется выработкой для объявлений и оценкой для выражений. Один из терминов «выполнение», «выработка» или «оценка» определяется в этом Международном стандарте для каждой конструкции, имеющей эффект во время выполнения.
ПРИМЕЧАНИЯ
1 Во время компиляции объявление сущности объявляет сущность. Во время выполнения, выработка объявления создаёт сущность.