Стандартные директивы Ады
Список стандартных директив компилятора Ады приводится в приложении 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); | - | Указывает, что значение массива компонентов может изменяться в непредсказуемые моменты, вне зависимости от работы программы. |