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



         

Соглашения по наименованию исходных файлов GNAT


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

  • Файлы, которые начинаются префиксом "sc", содержат лексический сканер.
  • Все файлы, которые начинаются префиксом "par", являются компонентами синтаксического анализатора (parser).

    Число в имени соответствует главе в "Руководстве по языку программирования Ада 95" ("Ada 95 Reference Manual").

    Например, синтаксический разбор инструкции select

    может быть обнаружен в файле "par-ch9.adb".

  • Все файлы, которые начинаются префиксом "sem", осуществляют семантический анализ.

    Число в имени соответствует главе в "Руководстве по языку программирования Ада 95" ("Ada 95 Reference Manual").

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

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

  • Все файлы, которые начинаются префиксом "exp", осуществляют нормализацию и расширение внутреннего представления (абстрактного синтаксического дерева - abstract syntax tree или AST).

    Эти файлы используют такую же схему нумерации, которую используют файлы синтаксического и семантического анализа.

    Например, конструкция процедур инициализации записи выполнена в файле "exp_ch3.adb".

  • Все файлы, которые начинаются префиксом "bind", реализуют редактор связей (binder), который осуществляет проверку согласованности компиляции, определяет порядок элаборации и генерирует файл редактора связей (bind file).

  • Файлы "atree.ads" и "atree.adb" описывают низкоуровневые структуры данных, которые используются препроцессором (front-end).

  • Файлы "sinfo.ads" и "sinfo.adb" описывают подробности структуры абстрактного синтаксического дерева, которое генерируется синтаксическим анализатором (parser).




    Содержание  Назад  Вперед