Вопрос

Может ли кто-нибудь предоставить мне простые рабочие примеры, иллюстрирующие использование прагм в Ada 2005?Я понимаю, что прагмы используются для процессов приоритетов, просто рабочих примеров мне не попадалось!

Очень признателен !

Это было полезно?

Решение

A search of comp.lang.ada за недавние дискуссии о priorities есть несколько интересных примеров. Вот этот кажется особенно подходящим для вашего вопроса.

Приложение:Двумя другими образцовыми источниками являются Обоснование Ады 95 и Обоснование Ады 2005

Другие советы

Прагма Ada — это функция языка, которая позволяет корректировать или точно настраивать поведение программы Ada.Ряд прагм определяется стандартом языка Ada, но поставщики компиляторов также могут определять свои собственные.

Тема прагм охватывает гораздо больше, чем просто приоритеты процессов [задач]. список стандартных и предоставленных поставщиком прагм для проверки.

Что именно вы пытаетесь сделать с помощью прагм?Установить приоритеты задач?

-- Not compile checked:
with System; use System;

task Prioritized_Task is
   pragma Priority(System.Default_Priority + 1);

   entry Start;

end Prioritized_Task;

Как и в случае с большей частью Ады, я думаю, что лучший ответ здесь — действительно проконсультируйтесь с LRMраздел об управлении приоритетами задач на самом деле очень читабелен, во всяком случае, для определения стандарта языка.

Обратите внимание, что вы также можете установить приоритет задачи во время выполнения без использования прагмы.Для этого используется пакет Ada.Dynamic_Priorities.Это то, что я обычно делаю в наши дни, если только по какой-то странной причине желаемый приоритет не известен во время компиляции, и я не против жестко его запрограммировать.

Я настоятельно рекомендую продвинутым пользователям, таким как вы, просмотреть LRM и посмотреть, что вам дает этот язык.Обратите особое внимание на приложения (разделы, начинающиеся с буквы), поскольку именно там документируется большая часть полезного.В вашем случае вас, вероятно, особенно заинтересует приложение «Реальное время» (Приложение D).

Да, я вижу, что этот вариант часто используется, чтобы отключить компилятор из-за переменных, на которые нет ссылок в процедуре:

pragma Unreferenced(Variable);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top