"Адское" программирование Ada-95 -Компилятор GNAT



              

Директивы определенные в реализации компилятора GNAT



Директивы определенные в реализации компилятора GNAT

Abort_Defer;  -  откладывает принудительное завершение до конца блока инструкций (должна быть помещена в начале блока инструкций)
   
Ada_83;  -  использовать при компиляции исходного текста соглашения стандарта Ada83, даже если переключатели опций компилятора указывают обратное
   
Ada_95;  -  использовать при компиляции исходного текста соглашения стандарта Ada95, даже если переключатели опций компилятора указывают обратное
   
Annotate(
 identifier{, name|expression});
 -  Добавить дополнительную информацию для внешних инструментальных средств
   
Assert(
 boolean_expression
 [, static_string_expression]);
 -  Вставить условие контрольной проверки
   
Ast_Entry(entry_identifier);  -  Реализована только для OpenVMS
   
C_Pass_By_Copy(
 [Max_Size =>] static_integer_expression);
 -  При вызове функции Си, использовать передачу параметра по значению (не по ссылке), если это возможно
   
Comment(static_string_expression);  -  То же самое, что и Ident
   
Common_Object(
   [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Size =>] external_symbol] )
 -  Для Фортрана. Создать переменную, которая использует общее пространство
   
Complex_Representation(
 [Entity =>] local_name);
 -  Использовать формат комплексных чисел gcc (для повышения скорости вычислений)
   
Component_Alignment(
  [Form =>] alignment_choice
 [, [Name =>] type_local_name]);
 -  Указывает как должно осуществляться выравнивание компонентов записи
   
CPP_Class([Entity =>] local_name);  -  Трактовать запись или тэговую запись как класс Си++
   
CPP_Constructor(
 [Entity =>] local_name);
 -  Трактовать импортируемую функцию как конструктор класса Си++
   
CPP_Destructor(
 [Entity =>] local_name);
 -  Трактовать импортируемую функцию как деструктор класса Си++
   
CPP_Virtual(
  [Entity =>] entity,
 [, [Vtable_Ptr =>] vtable_entity,]
 [, [Position =>] static_integer_expression]);
 -  Импортировать виртуальную функцию Си++
   
CPP_Vtable(
  [Entity =>] entity,
 [, [Vtable_Ptr =>] vtable_entity,]
 [, [Entry_Count =>] static_integer_expression]);
 -  Определить таблицу виртуальных функций
   
Debug(procedure_call_statement);  -  Определить вызов отладочной процедуры
   
Eliminate([Unit_Name =>] identifier);  -  Указать объект который не используется программой. Создается утлитой gnatelim
   
Export_Exception(
  [Internal =>] local_name,
 [, [External =>] external_symbol,]
 [, [Form =>] Ada | VMS]
 [, [Code =>] static_integer_expression]);
 -  Реализована только для OpenVMS
   
Export_Function(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Parameter_Types =>] parameter_types]
 [, [Result_Type =>] result_subtype_mark]
 [, [Mechanism =>] mechanism]
 [, [Result_Mechanism =>] mechanism_name]);
 -  Экспортировать Ада-функцию с указанием дополнительной информации по отношению к информации представленной директивой Export
   
Export_Object(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Size =>] external_symbol]);
 -  Экспортировать тэговую запись Ады с указанием дополнительной информации по отношению к информации представленной директивой Export
   
Export_Procedure(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Parameter_Types =>] parameter_types]
 [, [Result_Type =>] result_subtype_mark]
 [, [Mechanism =>] mechanism]);
 -  Экспортировать Ада-процедуру с указанием дополнительной информации по отношению к информации представленной директивой Export
   
Export_Valued_Procedure(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Parameter_Types =>] parameter_types]
 [, [Result_Type =>] result_subtype_mark]
 [, [Mechanism =>] mechanism]);
 -  Экспортировать Ада-функцию обладающую побочными эффектами с указанием дополнительной информации по отношению к информации представленной директивой Export
   
Extend_System([Name =>] identifier);  -  устарела
   
External_Name_Casing(
 Uppercase | Lowercase
 [, Uppercase | Lowercase | As_Is]);
 -  Установить режим перевода в символы верхнего регистра для импорта в регистрозависимый язык. Может быть установлено в Uppercase, Lowercase или As_Is (по-умолчанию для gnst).
   
Finalize_Storage_Only(
 first_subtype_local_name);
 -  Не выполнять очистку (Finalize) для объектов описанных на уровне библиотеки. Изначально предназначено для внутреннего использования в реализации компилятора gnat.
   
Float_Representation(float_rep);  -  Реализована только для OpenVMS
   
Ident(static_string_expression);  -  Строка идентификации объектного файла (в Linux, значения не имеет)
   
Import_Exception(
  [Internal =>] local_name,
 [, [External =>] external_symbol,]
 [, [Form =>] Ada | VMS]
 [, [Code =>] static_integer_expression]);
 -  Реализована только для OpenVMS
   
Import_Function(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Parameter_Types =>] parameter_types]
 [, [Result_Type =>] result_subtype_mark]
 [, [Mechanism =>] mechanism]
 [, [Result_Mechanism =>] mechanism_name]
 [, [First_Optional_Parameter =>] identifier]);
 -  Импортирует функцию, описанную средствами другого языка программирования, для использования ее в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import.
   
Import_Object(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Size =>] external_symbol]);
 -  Импортирует объект, описанный средствами другого языка программирования, для использования его в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import.
   
Import_Procedure(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Parameter_Types =>] parameter_types]
 [, [Mechanism =>] mechanism]
 [, [First_Optional_Parameter =>] identifier]);
 -  Импортирует процедуру, описанную средствами другого языка программирования, для использования ее в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import.
   
Import_Valued_Procedure(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Parameter_Types =>] parameter_types]
 [, [Mechanism =>] mechanism]
 [, [First_Optional_Parameter =>] identifier]);
 -  Импортирует функцию обладающую побочными эффектами, которая описана средствами другого языка программирования, для использования ее в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import.
   
Inline_Always(name[, name]);  -  Указывает, на необходимость выполнения межмодульной inline-подстановки не зависимо от состояния переключателей опций компилятора.
   
Inline_Generic(generic_package_name);  -  Введена для совместимости с другими Ада-компиляторами
   
Interface(
  [Convention =>] convention_identifier,
  [Entity =>] local_name
 [, [External_Name =>] static_string_expression],
 [, [Link_Name =>] static_string_expression]);
 -  Введена для совместимости с другими Ада-компиляторами
   
Interface_Name(
  [Entity =>] local_name
 [, [External_Name =>] static_string_expression]
 [, [Link_Name =>] static_string_expression]);
 -  Введена для совместимости с другими Ада-компиляторами
   
Linker_Alias(
 [Entity =>] local_name
 [Alias =>] static_string_expression);
 -  Определяет альтернативный компоновщик (linker) для указанного пакета (или другого компонуемого модуля).
   
Linker_Section(
 [Entity =>] local_name
 [Section =>] static_string_expression);
 -  Указание компоновщику gcc использовать соответствующую секцию для указанного имени
   
Long_Float(float_format);  -  Реализована только для OpenVMS
   
Machine_Attribute(
 [Attribute_Name =>] string_expression,
 [Entity =>] local_name);
 -  Определяет атрибуты машины для gcc.
   
Main_Storage(
 main_storage_option [, main_storage_option]);
 -  Реализована только для OpenVMS
   
No_Run_Time;  -  Указать компилятору gnat не использовать библиотеку времени выполнения (например, в случае написания драйвера устройства).
   
No_Return(procedure_local_name);  -  Указывает процедуру, которая преднамеренно не возвращает управление. Предназначена для подавления предупреждающих сообщений компилятора.
   
Passive([Semaphore | No]);  -  Введена для совместимости с другими Ада-компиляторами
   
Polling(On | Off);  -  Если включена, то разрешает опрос исключений
   
Propagate_Exceptions(subprogram_local_name);  -  Определяет импортированную подпрограмму, которая будет обрабатывать исключения Ады (без потерь производительности).
   
Psect_Object(
  [Internal =>] local_name,
 [, [External =>] external_symbol]
 [, [Size =>] external_symbol]);
 -  То же самое, что и Common_Object.
   
Pure_Function([Entity =>] function_local_name);  -  Указывает, что функция не имеет побочных эффектов.
   
   
Ravenscar;  -  Устанавливает политику реального времени RAVENSCAR
   
Restricted_Run_Time;  -  Подобно директиве Ravenscar, устанавливает некоторые ограничения на программирование задач реального времени
   
Share_Generic(name {, name});  -  Введена для совместимости с другими Ада-компиляторами
   
Source_File_Name(
 [Unit_Name =>] unit_name,
 [FNAME_DESIG =>] string_literal);
 -  Переопределяет традиционные для реализации компилятора gnat правила именования файлов.
   
Source_Reference(
 integer_literal, string_literal);
 -  Применяется для совместного использования с утилитой gnatchop.
   
Stream_Convert(
 [Entity =>] type_local_name,
 [Read =>] function_name,
 [Write =>] function name);
 -  Упрощает создание подпрограмм потокового ввода/вывода для указанного типа данных
   
Style_Checks(
 string_literal | ALL_CHECKS |
 On | Off [, local_name]);
 -  Указывает реализации компилятора gnat выполнять проверку стиля оформления исходных текстов (если включено в процессе компиляции).
   
Subtitle([Subtitle =>] string_literal);  -  Введена для совместимости с другими Ада-компиляторами
   
Suppress_All;  -  Введена для совместимости с другими Ада-компиляторами
   
Suppress_Initialization([Entity =>] type_name);  -  Запретить инициализацию переменных указанного типа данных
   
Task_Info(expression);  -  Определяет информацию о задаче.
   
Task_Name(string_expression);  -  Определяет имя задачи.

Примечание: отсутствует в реализации GNAT V 3p.

   
Task_Storage(
 [Task_Type =>] local_name,
 [Top_Guard =>] static_integer_expression);
 -  Определяет "охранное" пространство для задачи.
   
Time_Slice(static_duration_expression);  -  Определяет квант времени задачи (tasking time slice) для главной программы
   
Title(titling_option [, titling option]);  -  Введена для совместимости с другими Ада-компиляторами
   
Unchecked_Union(first_subtype_local_name);  -  Трактовать запись как тип объединения (union) языка Си.
   
Unimplemented_Unit;  -  Предназначена для использования в не законченных модулях. Порождает генерацию ошибки при компиляции такого модуля.
   
Unreserve_All_Interrupts;  -  Позволяет переназначение прерываний, которые обычно обрабатываются реализацией компилятора gnat (например SIGINT).
   
Unsuppress(identifier [, [On =>] name]);  -  Обладает эффектом, противоположным директиве Suppress.
   
Use_VADS_Size  -  Для старого Ада-кода. атрибут 'Size эквивалентен атрибуту 'VADS_Size.
   
Warnings(On | Off [, local_name]);  -  Включает или выключает генерацию предупредительных сообщений компилятором.
   
Weak_External([Entity =>] local_name);  -  Определяет объект, который не должен распознаваться компоновщиком.








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