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

       

Общие правила наименования файлов


Не зависимо от используемой операционной системы (Microsoft Windows или Linux) компилятор GNAT достаточно активно использует суффиксы имен файлов (иначе, расширения имен файлов).

Ниже перечисляются общие соглашения GNAT по использованию суффиксов имен файлов:

Суффикс

Пояснения



.ads  -  файл с исходным текстом спецификации пакета Ады
.adb  -  файл с исходным текстом тела пакета Ады или Ада-программы
.adc  -  файл конфигурации GNAT
.adt  -  файл дерева зависимостей
.ali  - 

файл содержащий информацию для связывания и отладки, который генерируется GNAT в процессе компиляции

.xrb  -  файл перекрестных ссылок генерируемый утилитой gnatf

По умолчанию, имя файла определяется именем модуля, который содержится в этом файле.

Имя файла формируется путем взятия полного расширенного имени модуля и замене разделительных точек символами дефиса ('-').

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

Исключение из этого правила касается файлов чьи имена начинаются символами a, g, i или s, а следующим символом является символ дефиса.

В этом случае вместо символа дефиса ('-') используется символ тильды ('~').

Смысл таких специальных правил заключается в том, что это позволяет избежать конфликта имен с файлами стандартной библиотеки, которые содержат дочерние модули пакетов System, Ada, Interfaces и GNAT, использующих для имен файлов префиксы s-, a-, i- или g-, соответственно.

Следующий список демонстрирует некоторые примеры использования этих правил именования файлов:

Имя файла

Пояснения

main.ads  -  Спецификация главной программы
main.adb  -  Тело главной программы
arith_functions.ads  -  Спецификация пакета Arith_Functions
arith_functions.adb  -  Тело пакета Arith_Functions
func-spec.ads  -  Спецификация дочернего пакета Func.Spec
func-spec.adb  -  Тело дочернего пакета Func.Spec
main-sub.adb  -  Тело Sub субмодуля Main
a~bad.adb  -  Тело дочернего пакета A.Bad
<


Соблюдение этих правил при наличии длинных имен модулей (например, в случае глубокой вложенности модулей) может привести к чрезмерно длинным именам файлов.

Для усечения длин имен файлов можно использовать "уплотнение" имен файлов.

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

Естественно, алгоритм "уплотнения" имен файлов не может полностью гарантировать уникальность для всех возможных имен файлов.

Это означает, что при использовании "уплотнения" имен файлов окончательная ответственность за уникальность имен файлов возлагается на разработчика приложения.

В качестве альтернативы может быть использовано явное указание имен файлов (рассматривается далее).

При переносе Ада-программы из среды компилятора который поддерживает другие соглашения по наименованию файлов для создания файлов с исходными текстами, имена которых будут соответствовать соглашениям GNAT, может быть использована утилита gnatchop.


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