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



         

Стандартные директивы Ады


Список стандартных директив компилятора Ады приводится в приложении 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);  - 

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




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