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

         

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



Доступность средств разработки

Система Ада-компилятора GNAT
Установка GNAT
Установка GNAT на Windows
Установка GNAT на Linux
Установка бинарных файлов от ACT
Установка RPM-пакетов ALT
Общие правила наименования файлов
Использование других имен файлов


Альтернативные схемы именования
Сборка первой программы

Три этапа сборки проекта
Опции компилятора
Проверка ошибок во время выполнения программы
Проверка ошибок в исходном тексте без компиляции
Обнаружение большого количества ошибок при компиляции
Связывание Ада-программы
Опции редактора связей gnatbind
Правила поиска файлов для gnatbind
Компоновщик gnatlink
Опции компоновщика gnatlink

Утилита gnatmake
Опции gnatmake
Указание путей поиска файлов для gnatmake
Управление режимами gnatmake
Примечания для командной строки gnatmake
Связывание и компоновка, утилита gnatbl
Модели компиляции GNAT и C/C++
Модель компиляции GNAT и общая согласованная Ада-библиотека
Директивы конфигурации
Обработка директив конфигурации

Файлы директив конфигурации
Уменьшение затрат времени с помощью утилиты gnatstub
Утилита перекрестных ссылок gnatxref
Оценка "мертвого" кода с помощью утилиты gnatelim
Отслеживание состояния стека и обнаружение утечек памяти во время выполнения программы
Утилита gnatmem
Средства GNAT.Debug_Pools
Условная компиляция с помощью препроцессора gnatprep
Утилиты gnatpsys и gnatpsta
Произвольное именование файлов, утилита gnatname

Оптимизация проекта
Опции оптимизации компилятора
Средства оптимизации GNAT, используемые в исходном тексте
Оптимизация для специфического типа процессора
GNAT и библиотеки
Создание Ада-библиотеки
Установка Ада-библиотеки
Использование Ада-библиотеки
Перекомпиляция библиотеки времени выполнения GNAT
Средства управления проектами в системе GNAT

Файлы проектов GNAT
Примеры файлов проектов
Различные опции сборки и каталоги выходных результатов для общих исходных файлов
Использование внешних переменных
Импорт других проектов
Расширение существующего проекта
Синтаксис файлов проектов
Базовый синтаксис
Пакеты
Выражения

Строковые типы
Переменные
Атрибуты
Атрибуты как ассоциативные массивы
Конструкция "case"
Исходные, объектные и исполняемые файлы проекта
Каталог объектных файлов
Каталог исполняемых файлов
Каталоги исходных файлов
Имена исходных файлов

Импорт проектов
Расширение проекта
Обращение к внешним переменным в файлах проектов
Пакеты файлов проектов
Переменные импортируемых проектов
Схемы именования файлов
Проекты библиотек
Опции командной строки, относящиеся к файлам проектов
Утилита gnatmake и файлы проектов
Управляющая программа gnat и файлы проектов

Расширенный пример
Диаграмма полного синтаксиса файлов проектов
Построение больших проектов
Использование утилиты GNU make
Общие сведения о GNU make
Использование утилиты gnatmake в файлах Makefile
Автоматическое создание списка каталогов
Генерация опций командной строки для gnatmake
Преодоление ограничения на длину командной строки
Переносимость в UNIX, пакеты GNU Automake и GNU Autoconf

Использование встроенного ассемблера
Пакет System.Machine_Code
Различия в использовании внешнего и встроенного ассемблера
Особенности реализации компилятора GNAT
Особенности используемого ассемблера
Именование регистров процессора
Порядок следования операндов источника и приемника
Значения констант
Шестнадцатеричные значения
Суффиксы размера

Загрузка содержимого памяти
Косвенная адресация
Инструкции повторения
Использование пакета System.Machine_Code
Пример элементарной программы
Проверка примера элементарной программы
Поиск ошибок в коде ассемблера
Более реальный пример
Параметры вывода
Ограничения

Использование самостоятельно описываемых типов
Параметры ввода
Встроенная подстановка (inline) для кода на встроенном ассемблере
"Затирание" содержимого регистров
Изменяемые инструкции
Синтаксис GNAT
Директивы компилятора для отладки
Получение расширенной информации компилятора
Использование отладчика GNU GDB
Общие сведения об отладчике GNU GDB

Знакомство с командами GDB
Использование выражений Ады
Вызов подпрограмм определяемых пользователем
Исключения и точки прерывания
Задачи Ады
Отладка настраиваемых модулей
Ограничение возможностей языка
Некорректное завершение работы компилятора
Получение внутренней отладочной информации
Соглашения по наименованию исходных файлов GNAT

Содержание раздела