Вопрос
Может ли кто-нибудь предоставить мне простые рабочие примеры, иллюстрирующие использование прагм в 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);