Справочное руководство по языку Ада-83



              

Приложение d. Термины и определения


Это приложение носит информационный характер и не является частью определения стандарта языка. Термины, выделенные в тексте курсивом, либо имеют собственную статью, либо описываются в статьях, относящихся к логически связанным с ними понятиям. После термина в скобках приведен соответствующий английский термин.

Агрегат (aggregate) — базовая операция над типом, которая объединяет значения компонент в составное значение индексируемого типа (агрегат массива) или именуемого типа (агрегат записи), являющихся разновидностями составного типа. Компоненты агрегата могут быть позиционными (координатными) и/или именованными (ключевыми).

Атрибут (attribute) — базовая операция над типом, которая вырабатывает предопределенную характеристику поименованного понятия, указанного префиксом; некоторые атрибуты являются функциями, типом или диапазоном.

Вещественный тип (real type) — набор приближенных значений вещественных чисел, заданных с относительной погрешностью (плавающий тип} или абсолютной погрешностью (фиксированный тип). Вещественный тип реализуется хранимыми в памяти вычислительной машины числами и определяется точностью приближения и диапазоном.

Вид (mode), см. параметр.

Видимость (visibility) — доступность характеристик описанного понятия при его применении в данной точке текста программы. Описание понятия, вводящее идентификатор, называется видимым в данной точке текста программы, если это понятие осмысленно при появлении его идентификатора в этой точке программы. Прямая видимость подразумевает одно описание понятия с характеристиками, уникальными в области действия, и некоторое число использовании этого понятия. При именовании описание видимо на месте постфикса в именуемой компоненте или на месте имени в именованном сопоставлении. Иначе, описание видимо непосредственно всякий раз, когда единственный идентификатор имеет этот смысл.

Видимый раздел (visible part), см. пакет.

Возбуждение исключения (raising an exception), см. исключение.

Вход (entry) — именование точки синхронизации задач и передачи данных между ними. Вход используется для осуществления взаимодействия задач. Синтаксически вызов входа похож на вызов подпрограммы; его внутренний механизм определяется одним или несколькими операторами принятия, специфицирующими действия, выполняемые при вызове входа.

Вычисление (evaluation) — процесс получения значения (например, выражения}. Этот процесс происходит во время выполнения программы.

Выражение (expression) — формула, определяющая процесс получения значения.

Генератор (allocator) — базовая операция над типом, создающая объект и вырабатывающая ссылочное значение, которое указывает на этот объект. Созданный объект должен сохраняться до тех пор, пока существует обозначение объекта некоторым именем.

Диапазон (range) — упорядоченный набор последовательных значений скалярного типа. Диапазон задается нижней и верхней границами этого набора значений. Значение из диапазона называется принадлежащим этому диапазону.

Дискретный тип (discrete type) — упорядоченный набор различных значений. Дискретными типами являются перечиспимый и целый типы. Дискретные типы используются для индексирования и управления повторением в операторах цикла, а также в выборах операторов выбора и вариантах записи.

Дискриминант (discriminant) — специальный компонент объекта или значение именуемого типа. Подтипы других компонентов и даже их присутствие или отсутствие могут зависеть от значения дискриминанта.

Задача (task) — программный модуль, функционирующий параллельно с другими частями программы. Задача задается спецификацией задачи, которая задает имя задачи, а также имена и формальные параметры ее входов, и телом задачи, которое определяет ее выполнение. Задачный модуль (модуль-задача) является одним из видов программных модулей. Заданный тип — это тип, который представляет возможность последующего описания любого количества однотипных задач. Говорят, что значение задачного типа указывает задачу.

Именованное сопоставление (named association) — способ задания связи элемента составного значения с одной или несколькими позициями с помощью их именования.

Именуемая компонента (selected component) — имя, состоящее из префикса и идентификатора, называемого постфиксом. Именуемые компоненты используются для обозначения компонент записей, входов и объектов, указанных ссылочными значениями; они также используются как расширенные имена.

Именуемый тип (record type) — составной тип из именованных различными идентификаторами компонент, которые обычно бывают различных типов или подтипов. Для каждой компоненты значения записи или объекта-записи в определении именуемого типа задается идентификатор, который однозначно определяет компоненту записи.

Имя (name) — средство представления понятия. Говорят, что имя обозначает понятие и что понятие является смыслом имени. См. также описание, префикс.

Индекс (index), см. индексируемый тип.

Индексируемая компонента (indexed component) — форма имени, содержащая выражения, которые задают значения индексов компоненты массива. Индексируемая компонента обозначает компоненту массива. Индексируемая компонента может также обозначать вход в семействе входов.

Индексируемый тип (array type) — составной тип из компонент одного и того же подтипа (и следовательно, одного и того же типа). Каждая компонента однозначно идентифицируется индексом (для одномерного массива) или последовательностью индексов (для многомерного массива). Каждый индекс должен быть значением дискретного типа и принадлежать требуемому диапазону индексов.

Исключение (exception) — обозначение ошибочной ситуации, которая может произойти при выполнении программы и при этом будет зарегистрирована и обработана. Возбуждение исключения состоит в прекращении нормального выполнения программы, сигнализирующем о наличии ошибки. Обработчик исключения — это резервная часть программного текста, задающая реакцию на исключение. Выполнение этого программного текста называется обработкой исключения.

Квалифицированное выражение (qualified expression) — выражение, перед которым указан его тип или подтип. Используется для разрешения неоднозначности выражения (например, из-за совмещения).

Компилируемый модуль (compilation unit) — описание или тело программного модуля, предназначенные для компиляции в качестве самостоятельного текста. Перед ним может быть задан спецификатор контекста, включающего другие компилируемые модули, от которых зависит данный и имена которых указаны в спецификаторах совместимости.

Компонента (component) — значение, которое является частью более сложного значения, или объект, который является частью более сложного объекта.

Константа (constant), см. объект.

Лексема (lexical element) — лексический элемент, который может быть идентификатором, литералом, ограничителем или комментарием.

Лимитируемый тип (limited type) — тип, для которого не определены неявно описанные операции присваивания и предопределенного сравнения на равенство. Все заданные типы — лимитируемые. Личный тип может быть определен как лимитируемый. Для лимитируемого типа может быть явно описана операция сравнения на равенство.

Литерал (literal) — значение, явно выраженное буквами, цифрами или другими символами. Литерал — это одно из четырех: числовой литерал, литерал перечисления, символьный литерал или строковый литерал.

Личный раздел (private part), см. пакет.

Личный тип (private type) — тип, структура и набор значений которого явно определены, но непосредственно недоступны для пользователя. О личном типе известны только его дискриминанты (если они есть) и набор операций, определенных над его значениями. Личный тип и соответствующие операции определяются в видимом разделе пакета или в разделе формальных параметров настройки. Для личных типов, не являющихся лимитируемыми, определены также операции присваивания, сравнения на равенство и неравенство.

Модельное число (model number) — точно представляемое значение вещественного типа. Операции над вещественными типами определяются в терминах операций над модельными числами этих типов. Свойства модельных чисел и операции над ними являются минимальными свойствами, предписанными для всех реализации вещественных чисел.

Набор (collection) — вся совокупность объектов, создаваемых вычислением генераторов для некоторого ссылочного типа.

Настраиваемый модуль (generic unit) — шаблон для множества подпрограмм или пакетов. Создаваемые с использованием этого шаблона подпрограмма или пакет называются экземплярами данного настраиваемого модуля. Конкретизация настройки является видом описания, которое создает экземпляр. Настраиваемый модуль пишется в виде подпрограммы или пакета с предшествующим спецификации разделом формальных параметров настройки. Формальным параметром настройки является либо тип, либо подпрограмма, либо объект. Настраиваемый модуль — это один из видов программных модулей. Область действия (scope), см. описание. Обозначить (denote), см. описание. Обработчик (handler), см. исключение.

Объект (object) — понятие, которое обладает значением некоторого типа. Программа создает объект либо при предвыполнении описания объекта, либо при вычислении генератора. Описание или генератор задают тип объекта, объект может обладать значением только этого типа.

Офаничение (constraint) — средство выделения подмножества значений типа. Принадлежащее этому подмножеству значение удовлетворяет ограничению.

Ограничение диапазона (range constraint) — способ определения диапазона типа, т. е. подмножества значений этого типа, принадлежащих диапазону.

Ограничение дискриминанта (discriminant constraint) — способ определения дискриминанта для именуемого типа или личного типа.

Ограничение индекса (index constraint) — определение ограничения в задании нижней и верхней границ для каждого индекса индексируемого типа.

Оператор (statement) — синтаксическая конструкция, определяющая одно или несколько действий, реализуемых во время выполнения программы.

Оператор блока (block statement) — составной оператор, который может содержать последовательность операторов. Он может также содержать раздел описаний и обработчики исключений, которые являются локальными в данном операторе блока.

Оператор принятия (accept statement), см. вход.

Операция (operator) — ограничитель или зарезервированное слово, используемое для указания алгоритма преобразования значений одного или двух операндов в результат заданного типа. Унарную операцию записывают перед операндом; бинарную операцию — между двумя операндами. Операция — это специальный вид вызова функции. Операция может быть описана как функция. Многие операции неявно описываются описанием типа (например, большинство описаний типа подразумевает описание операции сравнения на равенство для значений этого типа).

Операция типа (operation) — элементарное действие, связанное с одним или несколькими типами. Операция типа [8] неявно описывается при описании этого типа либо является подпрограммой, которая имеет параметр или результат заданного типа.

Описание (declaration) — синтаксическая конструкция, которая связывает идентификатор (или другие' обозначения) с понятием. Это сопоставление внутри области текста, называемой областью действия описания. Внутри области действия описания существуют места использования идентификатора для ссылки на связанное с ним понятие. Идентификатор, употребляемый в таких местах, называется простым именем понятия; говорят, что имя обозначает связанное с ним понятие.

Описание переименования (renaming declaration) — описание другого имени понятия. Пакет (package) — программный модуль, который определяет группу логически связанных понятий, таких как типы, объекты этих типов и подпрограммы с параметрами этих типов. Пакет состоит из описания пакета и тела пакета. Описание пакета имеет видимый раздел, содержащий описания всех понятий, которые могут быть явно использованы вне пакета. Он может содержать также личный раздел с деталями реализации, которые заканчивают спецификацию видимых понятий, но которые недоступны для пользователя пакета. Тело пакета содержит реализации подпрограмм (и, возможно, задач), которые заданы в описании пакета. Пакет — это один из видов программного модуля.

Параметр (parameter) — одно из именованных понятий, связанных с подпрограммой, входом или настраиваемым модулем и используемых для связи с соответствующим телом подпрограммы, оператором принятия или настраиваемым телом. Формальный параметр — это идентификатор, используемый для обозначения именованного понятия в теле. Фактический параметр — это конкретное понятие, сопоставленное соответствующему формальному параметру при вызове подпрограммы, вызове входа или конкретизации настройки. Вид формального параметра определяет, поставляет ли фактический параметр значение для формального, или формальный параметр — для фактического, или и то и другое. Сопоставление фактическихпараметров формальным параметрам может быть определено с помощью именованного сопоставления, с помощью позиционного сопоставления или их комбинацией.

Переменная (variable), см. объект.

Перечислимый тип (enumeration type) — дискретный тип, значения которого представляются литералами перечисления, заданными явно в описании типа. Эти литералы перечисления являются либо идентификаторами, либо символьными литералами.

Плавающий тип (floating point type), см. вещественный тип.

Подкомпонента (subcomponent) — компонента либо компонента другой компоненты или подкомпоненты.

Подпрограмма (subprogram) — программный модуль, который может быть либо процедурой, либо функцией. Процедура определяет последовательность действий и вызывается с помощью вызова процедуры. Функция определяет последовательность действий, а также возвращает значение, называемое результатом, и, таким образом, вызов функции является выражением. Подпрограмма задается в виде описания подпрограммы, которое определяет ее имя, формальные параметры и (для функции) ее результат, и тело подпрограммы, которое определяет последовательность действий. В вызове подпрограммы задаются фактические параметры, которые сопоставляются с формальными параметрами. Подпрограмма — это один из видов программного модуля.

Подтип (subtype) — набор значений данного типа, определяемый ограничением типа. Каждое значение из множества значений подтипа принадлежит этому подтипу и удовлетворяет ограничению, определяющему подтип.

Позиционное сопоставление (positional association) — способ задания связи элемента с позицией, использующий позицию размещения элемента для определения этого элемента.

Постфикс (selector), см. именуемая компонента.

Прагма (pragma) — языковая конструкция для передачи информации компилятору.

Предвыполнение (elaboration) — процесс, применяемый к описанию, в результате которого описание выполняет свое назначение (например, создается объект). Этот процесс происходит при выполнении программы.

Префикс (prefix) — начальная часть некоторых видов имени. Префикс — это либо вызов функции, либо имя.

Присваивание (assignment) — базовая операция типа, заменяющая текущее значение переменной новым значением. Оператор присваивания определяет слева переменную, а справа — выражение, значение которого обязано стать новым значением переменной.

Программа (program) — совокупность из нескольких компилируемых модулей, один из которых является подпрограммой, называемой главной программой. Выполнение программы состоит из выполнения главной программы, которая может вызвать подпрограммы, описанные в других компилируемых модулях программы.

Программный модуль (program unit) — либо настраиваемый модуль, либо пакет, либо подпрограмма, либо задачный модуль.

Производный тип (derived type) — тип, значения и операции которого есть копии значений и операций существующего типа. Существующий тип называется родительским типом производного типа.

Простое имя (simple name), см. описание, имя.

Процедура (procedure), см. подпрограмма.

Прямая видимость (direct visibility), см. видимость.

Раздел вариантов (variant part) — определяет альтернативные компоненты записи в зависимости от значения дискриминанта записи. Каждое значение дискриминанта устанавливает одну из альтернатив раздела вариантов.

Раздел описаний (declarative part) — последовательность описаний. Он может также содержать логически связанную информацию, например тела подпрограмм и спецификаторы представления.

Рандеву (rendezvous) — взаимодействие между двумя параллельно выполняемыми задачами, когда одна задача вызвала вход другой задачи, и в вызванной задаче для этого вызова выполняется соответствующий оператор принятия.

Расширенное имя (expanded name) — способ обозначения понятия, которое описано непосредственно внутри некоторой конструкции. Расширенное имя имеет форму именуемой компоненты: префикс обозначает конструкцию {программный модуль или блок, цикл или оператор принятия}, постфикс — это простое имя понятия.

Родительский тип (parent type), см. производный тип.

Скалярный тип (scalar type) — упорядоченный набор значений с операциями отношения. К скалярному типу относится дискретный или вещественный тип. Объект или значение скалярного типа не имеет компонент.

Совмещение (overloading) — свойство понятия иметь несколько альтернатвпыл паопачо-ний в данной точке программного текста. Например, совмещенным литералом перечисления может быть идентификатор, который появляется в определениях нескольких перечислимых типов. Реальный смысл совмещенного идентификатора определяется по контексту. Совмещенными могут быть также подпрограммы, агрегаты, генераторы и строковые литералы.

Составной тип (composite type) — тип, значения которого имеют компоненты. Существуют две разновидности составного типа: индексируемые типы и именуемые типы.

Спецификатор использования (use clause) — средство, обеспечивающее прямую видимость описаний, которые находятся в видимых разделах именованных пакетов. Спецификатор контекста (context clause), см. компилируемый модуль. Спецификатор представления (representation clause) — средство указания компилятору отображения типа, объекта или задачи на архитектуру объектной машины, на которой выполняется программа. В некоторых случаях спецификаторы представления полностью определяют отображение, в других случаях они задают критерии выбора отображения. Спецификатор совместности (with clause), см. компилируемый модуль. Ссылочный тип (access type) — набор значений (ссылочные значения}, которые могут быть либо пустым значением, либо значением, указывающим объект, созданный генератором. Значение указанного объекта может быть прочитано или изменено через ссылочное значение. Определение ссылочного типа задает тип объектов, на которые указывают значения ссылочного типа. См. также набор.

Субмодуль (subunit), см. тело.

Тело (body) — конструкция, определяющая процесс выполнения подпрограммы, пакета, или задачи. След тела является синтаксической формой тела, которая указывает, что его выполнение определяется раздельно компилируемым субмодулем.

Тип (type) — набор значений и набор операций типа, применимых к этим значениям. Определение типа — это языковая конструкция, которой вводится тип. Конкретный тип — это ссылочный тип, индексируемый тип, личный тип, именуемый тип, скалярный тип или задачный тип.

Удовлетворять (satisfy), см. ограничение, подтип. Указывать (designate), см. ссылочный тип, задача. Фактический параметр (actual parameter), см. параметр. Фиксированный тип (fixed point type), см. вещественный тип. Формальный параметр (formal parameter), см. параметр. Функция (function), см. подпрограмма.

Целый тип (integer type) — дискретный тип, значения которого представляют все целые числа в заданном диапазоне.

Экземпляр (instance), см. настраиваемый мрдуль.


[8] Вместо термина "операция типа" в стандарте используется термин "операция", который не вызывает неоднозначности при его использовании в контексте. -- Прим. ред.









Содержание  Назад  Вперед