Приложения
Приложение A: Формальные типы настройки
Следующие таблицы содержат примеры доступных формальных типов настраиваемых модулей:
Формальный тип |
Фактический тип |
---|---|
Неполный тип Формат: |
Любой тип |
Дискретный тип Формат: |
Любой целочисленный тип, модульный тип или перечислимый тип |
Тип диапазона Формат: |
Любой целочисленный тип со знаком |
Модульный тип Формат: |
Любой модульный тип |
Тип с плавающей запятой Формат: |
Любой тип с плавающей запятой |
Двоичный тип с фиксированной запятой Формат: |
Любой двоичный тип с фиксированной запятой |
Десятичный тип с фиксированной запятой Формат: |
Любой десятичный тип с фиксированной запятой |
Определенный нелимитируемый личный тип Формат: |
Любой нелимитируемый, определенный тип |
Нелимитируемый личный тип с дискриминантом Формат: |
Любой нелимитируемый тип с дискриминантом |
Ссылочный тип Формат: |
Любой ссылочный тип для типа T |
Определенный производный тип Формат: |
Любой конкретный тип, производный от базового типа B |
Лимитируемый частный тип Формат: |
Любой определенный тип, лимитируемый или нет |
Неполное описание тегового типа Формат: |
Любой конкретный, определенный, теговый тип |
Определенный теговый личный тип Формат: |
Любой конкретный, определенный, теговый тип |
Определенный теговый лимитируемый личный тип Формат: |
Любой конкретный определенный теговый тип лимитируемый или нет. |
Определенный абстрактный теговый личный тип Формат: |
Любой нелимитируемый, определенный теговый тип абстрактный или конкретный |
Определенный абстрактный теговый лимитируемый личный тип Формат:
|
Любой определенный теговый тип, лимитир-мый или нет, абстрактный или конкретный |
Определенный производный теговый тип Формат: |
Любой конкретный теговый тип, производный от базового типа B |
Определенный абстрактный производный теговый тип Формат: |
Любой теговый тип, производный от базового типа B абстрактный или конкретный |
Тип массива Формат: |
Любой тип массива с диапазоном R, содержащий элементы типа T |
Интерфейсный тип Формат: |
Любой интерфейсный тип |
Лимитируемый интерфейсный тип Формат: |
Любой лимитируемый интерфейсный тип |
Задачный интерфейсный тип Формат: |
Любой задачный интерфейсный тип |
Синхронизированный интерфейсный тип Формат: |
Любой синхронизированный интерфейсный тип |
Защищенный интерфейсный тип Формат: |
Любой защищенный интерфейсный тип |
Производный интерфейсный тип Формат: |
Любой тип, производный от базового типа B и интерфейса I |
Производный тип с несколькими интерфейсами Формат:
|
Любой тип, производный от базового типа B и интерфейсов I1 и I2 |
Абстрактный производный интерфейсный тип Формат:
|
Любой тип, производный от абстрактного базового типа B и интерфейса I |
Лимитируемый производный интерфейсный тип Формат:
|
Любой тип, производный от лимитируемого базового типа B и лимитируемого интерфейса |
Абстрактный лимитируемый производный интерфейсный тип Формат:
|
Любой тип, производный от абстрактного лимитиру емого базового типа B и лимитируемого интерфейса |
Синхронизированный интерфейсный тип Формат:
|
Любой тип, производный от синхронизированного интерфейсного типы SI |
Абстрактный синхронизированный интерфейсный тип Формат:
|
Любой тип, производный от синхронизированного интерфейса SI |
Неопределенные версии типов
Многие из приведенных выше примеров могут быть использованы для формальных неопределенных типов:
Формальный тип |
Фактический тип |
---|---|
Неопределенный неполный тип Формат: |
Любой тип |
Неопределенный нелимитируемый личный тип Формат: |
Любой нелимитируемый тип неопределенный или определенный |
Неопределенный лимитируемый личный тип Формат: |
Любой тип, лимитируемый или нет, неопределенный или определенный |
Неполный неопределенный личный теговый тип Формат: |
Любой конкретный теговый тип, неопределенный или определенный |
Неопределенный теговый личный тип Формат: |
Любой конкретный, нелимитируемый теговый тип, неопределенный или определенный |
Неопределенный теговый лимитируемый личный типми Формат: |
Любой конкретный теговый тип, лимитируемый или нет, неопределенный или определенный |
Неопределенный абстрактный теговый личный тип Формат: |
Любой нелимитируемый тег овый тип, неопределенный или определенный, абстрактный или конкретный |
Неопределенный абстрактный теговый лимитируемый личный тип Формат:
|
Любой теговый тип, лимитируемый или нет, неопределенный или определенный,абстрактный или конкретный |
Неопределенный производный теговый тип Формат: |
Любой теговый тип, производный от базового типа B, неопределенный или определенный |
Неопределенный абстрактный производный теговый тип Формат:
|
Любой тегоый тип, производный от базового типа B, неопределенный или определенный абстрактный или конкретный |
Те же примеры могут также содержать дискриминанты. В этом случае, (<>)
заменяется списком дискриминантов, например: (D: DT)
.
Приложение B: Контейнеры
В следующей таблице показаны все контейнеры, доступные в Аде, включая их версии (стандартный, ограниченный, неограниченный, неопределенный):
Категория |
Контейнер |
Std |
Bounded |
Unbounded |
Indefinite |
---|---|---|---|---|---|
Вектор |
|
Y |
Y |
Y |
|
Список |
|
Y |
Y |
Y |
|
Отображение |
|
Y |
Y |
Y |
|
Отображение |
|
Y |
Y |
Y |
|
Множество |
|
Y |
Y |
Y |
|
Множество |
|
Y |
Y |
Y |
|
Дерево |
|
Y |
Y |
Y |
|
Универсальн |
|
Y |
|||
Очередь |
|
Y |
|||
Очередь |
|
Y |
Y |
||
Очередь |
|
Y |
Y |
Note
Чтобы получить имя пакета контейнера, замените пробел на _
в
его названии. (Например, пакет для Hashed Maps
называется Hashed_Maps
.)
В следующей таблице представлены префиксы, применяемые к имени контейнера, которые зависят от его версии. Как указано в таблице, стандартная версия не имеет связанного с ней префикса.
Версия |
Префикс именования |
---|---|
Std |
|
Ограниченный |
|
Неограниченный |
|
Неопределенный |
|