Список стандартных директив компилятора Ады приводится в приложении L (Annex L) руководства по языку программирования Ада (RM-95).
All_Calls_Remote[(library_unit_name)]; | - |
Для выполнения вызова подпрограмм пакета всегда использовать механизм RPC (Remote Procedure Call - вызов удаленной подпрограммы) |
Asynchronous(local_name); | - |
Вызов подпрограммы производится асинхронно. При этом, активируется выполнение удаленной подпрограммы и, не дожидаясь её завершения, происходит продолжение выполнения вызвавшей подпрограммы. |
Atomic(local_name); | - | Чтение/запись указанного объекта должно выполняться без прерываний |
Atomic_Components(array_local_name); | - | Чтение/запись указанного массива компонентов должно выполняться без прерываний |
Attach_Handler(handler_name, expression); | - | Установить процедуру обработки прерывания |
Controlled(first_subtype, local_name); | - |
Отключает "сборку мусора" для указанного типа данных. (не имеет эффекта в реализации компилятора gnat) |
Convention( [Convention =>] convention_identifier, [Entity=>] local_name); |
- |
Использовать соответствующие языковые соглашения для указанного объекта |
Discard_Names[([On =>] local_name)]; | - |
Отказаться от ASCII-представления объекта, которое используется атрибутом 'Img |
Elaborate( library_unit_name{, library_unit_name}); |
- | Предварительно выполнить элаборацию указанного пакета |
Elaborate_All( library_unit_name{, library_unit_name}); |
- |
Предварительно выполнить элаборацию всех спецификаций и тел пакетов от которых зависит указанный модуль |
Elaborate_Body[(library_unit_name)]; | - |
Выполнить элаборацию тела указанного модуля сразу после элаборации его спецификации |
Export( [Convention =>] convention_identifier, [Entity =>] local_name[, [External_name =>] string_expression] [, [Link_Name =>] string_expression]); |
- |
Экспортировать объект из Ада-программы для использования в другом языке программирования |
Import( [Convention =>] convention_identifier, [Entity =>] local_name[, [External_name =>] string_expression] [, [Link_Name =>] string_expression]); |
- |
Импортирует объект, описанный средствами другого языка программирования, для использования его в Ада-программе |
Inline(name{, name}); | - |
Указывает подпрограмму при обращении к которой должна осуществляться встроенная подстановка машинного кода этой подпрограммы вместо выполнения стандартного вызова этой подпрограммы (так называемая inline-подстановка). |
Inspection_Point [(object_name{, object_name})]; |
- |
В данной точке программы должна быть обеспечена возможность чтения значения указанного объекта (необходимо для сертификации правильности кода). |
Interrupt_Handler(handler_name); | - |
Указывает процедуру-обработчик прерывания |
Interrupt_Priority([expression]); | - |
Определяет приоритет задачи и/или защищенного объекта для случаев возникновения блокировки |
Linker_Options(string_expression); | - |
Передает строку опций для компоновщика (linker). |
List(identifier); | - |
Вывести листинг исходного текста после компиляции. |
Locking_Policy(policy_identifier); | - |
Определяет как защищенный объект будет заблокирован при возникновении блокировки. |
Normalize_Scalars; | - |
Устанавливать, когда это возможно, значения скалярных переменных в недопустимое значение |
Optimize(identifier); | - |
Указать как должны быть оптимизированы инструкции |
Pack(first_subtype_local_name); | - |
Указывает, что тип данных должен быть упакован |
Page; | - |
Указывает на начало новой страницы в листинге программы |
Preelaborate(library_unit_name); | - |
Указывает на необходимость предварительной элаборации указаанного пакета |
Priority(expression); | - |
Определяет приоритет задачи |
Pure[(library_unit_name)]; | - |
Указывает, что пакет "чистый" (pure). |
Queuing_Policy(policy_identifier); | - |
Определяет правило сортировки задач и/или защищенных объектов при постановке в очередь. |
Remote_Call_Interface[(library_unit_name)]; | - |
Подпрограммы пакета могут вызываться с использованием механизма RPC (Remote Procedure Call - вызов удаленной подпрограммы) |
Remote_Types[(library_unit_name)]; | - |
Пакет определяет типы, предназначенные для использования совместно с механизмом RPC (Remote Procedure Call - вызов удаленной подпрограммы) |
Restrictions(restriction{, restriction}); | - |
Отключает некоторые языковые средства. |
Reviewable; | - |
Предусматривает профилирование во время выполнения (подобно gprof). |
Shared_Passive[(library_unit_name)]; | - |
Используется для совместного использования глобальных данных между разными RPC-разделами распределенной программы. |
Storage_Size(expression); | - |
Указывает общий размер пространства стека для задачи. |
Suppress(identifier[, [On =>] name]); | - |
Отключает специфические проверки для общих исключений. |
Task_Dispatching(policy_identifier); | - |
Определяет, для задачи, правила сортировки вызовов при диспетчеризации (например, FIFO_Within_Priorities). |
Volatile(local_name); | - |
Указывает, что значение переменной может изменяться в непредсказуемые моменты, вне зависимости от работы программы. |
Volatile_Components(array_local_name); | - |
Указывает, что значение массива компонентов может изменяться в непредсказуемые моменты, вне зависимости от работы программы. |