"Адское" программирование Ada-95 -Компилятор GNAT


              

"Адское" программирование Ada-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) (Ada95)
Расширение существующего пакета
Иерархия модулей как подсистема
Приватные дочерние модули (private child units)
Переименования

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

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

Исключение Numeric_Error
Исключение Program_Error
Исключение Storage_Error
Исключение Tasking_Error
Исключения определяемые пользователем
Описание исключения пользователя
Возбуждение исключений
Обработка исключений
Обработчики исключений
Распространение исключений

Проблемы с областью видимости при обработке исключений определяемых пользователем
Пакет Ada.Exceptions
Принципы подавления исключений
Выполнение подавления исключений
Организация ввода/вывода
Текстовый ввод/вывод
Содержание