Ada 2005 でのプラグマの使用を説明する簡単な作業例を教えてもらえますか? プラグマが優先順位付けプロセスに使用されていることは理解していますが、実用的な例に出くわしていません!
とても有難い !
多くの Ada と同様に、ここでの最善の答えは LRMに相談することだと思います。タスクの優先順位の管理に関するセクションは、言語標準の定義としては、実際には非常に読みやすいものです。
プラグマを使用せずに実行時にタスクの優先度を設定することもできます。これはパッケージを利用しますAda.Dynamic_Priorities
。これは、奇妙な理由でコンパイル時に目的の優先順位がわかっている場合を除いて、最近私が通常行っていることであり、それをハードコーディングすることは気にしません。
あなたのような上級ユーザーは、LRM を調べて、すべての言語が提供するものを確認することを強くお勧めします。附属書 (文字で始まるセクション) に特に注意してください。そこには、ほとんどの優れた内容が文書化されています。あなたの場合、おそらくリアルタイム別館 (別館 D) に特に関心があるでしょう。
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;
comp.lang.ada
についての最近の議論を検索すると、priorities
興味深い例がいくつかあります。これはあなたの質問に特に適しているようです。
補遺: 他の 2 つの典型的な情報源は、Ada 95の根拠と Ada 2005の根拠です。
うん、私はこれがプロシージャ内の参照されていない変数についてコンパイラをシャットダウンするために頻繁に使用されるのを見ます:
pragma Unreferenced(Variable);