Ада-95. Компилятор GNAT

       

Первая программа

"Сюрпризы" переводной терминологии
Первая программа

Библиотека и компилируемые модули
Лексические соглашения
Комментарии
Идентификаторы
Литералы
Зарезервированные слова
Методы Ады: подпрограммы, операции и знаки операций
Инструкции, выражения и элаборация

Директивы компилятора
Скалярные типы данных языка Ада


Введение в систему типов языка Ада
Предопределенный тип Integer
Тип Universal_Integer
Описание целочисленных констант
Тип Root_Integer
Примеры целочисленных описаний
Предопределенные знаки операций для целочисленных типов

Модульные типы
Дополнительные целочисленные типы системы компилятора GNAT
Вещественные типы
Вещественные типы с плавающей точкой, тип Float
Вещественные типы с фиксированной точкой, тип Duration
Вещественные типы с десятичной фиксированной точкой
Типы Universal_Float и Root_Real
Пакеты для численной обработки
Преобразование численных типов
Перечислимые типы

Описание перечислимого типа
Предопределенный логический тип Boolean
Символьные типы Ады (Character, Wide_Character)
Типы и подтипы
Производные типы

Атрибуты
Управляющие структуры
Пустая инструкция
Инструкция присваивания
Блоки
Условные инструкции if
Инструкция выбора сase
Организация циклических вычислений
Простые циклы (loop)

Цикл while
Цикл for
Инструкции exit и exit when
Именованые циклы
Инструкция перехода goto
Массивы (array)
Описание простого массива
Анонимные массивы
Организация доступа к отдельным элементам массива
Агрегаты для массивов

Отрезки (array slices)
Массивы-константы
Атрибуты массивов
Многомерные массивы
Типы неограниченных массивов (unconstrained array), предопределенный тип String
Стандартные операции для массивов
Присваивание
Проверки на равенство и на неравенство
Конкатенация

Сравнение массивов
Логические операции
Динамические массивы
Записи (record)
Описание простой записи
Значения полей записи по-умолчанию
Доступ к полям записи
Агрегаты для записей
Записи-константы

Лимитированные записи
Вложенные структуры
Поля типа массив
Поля записей типа String
Вложенные записи
Дискриминанты
Вариантные записи
Ограниченные записи (constrained records)
Неограниченные записи (unconstrained records)

Другие использования дискриминантов
Подпрограммы
Общие сведения о подпрограммах
Процедуры
Функции
Локальные переменные
Локальные подпрограммы
Раздельная компиляция
Подпрограммы как библиотечные модули
Режимы передачи параметров

Режим "in"
Режим "in out"
Режим "out"
Режим access
Позиционное сопоставление
Именованное сопоставление
Смешивание позиционного и именованного сопоставления
Указание значения параметра по-умолчанию
Совмещение (overloading)
Совмещение подпрограмм (subprogram overloading)

Совмещение знаков операций (operator overloading)
Спецификатор "use type"
Пакеты
Идеология концепции пакетов
Спецификация пакета
Тело пакета
Средства сокрытия деталей реализации внутреннего представления данных
Приватные типы (private types)

Лимитированные приватные типы (limited private types)
Отложенные константы (deferred constants)
Дочерние модули (child units) (Ada)
Расширение существующего пакета
Иерархия модулей как подсистема
Приватные дочерние модули (private child units)
Переименования
Уменьшение длин имен

Переименование знаков операций
Переименование исключений
Переименование компонентов
Переименование отрезка массива
Переименование поля записи
Переименование библиотечного модуля
Настраиваемые модули в языке Ада (generics)
Общие сведения о настраиваемых модулях
Настраиваемые подпрограммы

Настраиваемые пакеты
Дочерние настраиваемые модули
Параметры настройки для настраиваемых модулей
Параметры-типы
Параметры-значения
Параметры-подпрограммы
Преимущества и недостатки настраиваемых модулей
Исключения

Предопределенные исключения
Исключение Constraint_Error
Исключение Numeric_Error
Исключение Program_Error
Исключение Storage_Error
Исключение Tasking_Error
Исключения определяемые пользователем
Описание исключения пользователя
Содержание раздела