Domanda

Qualcuno mi può fornire con semplici esempi di lavoro che illustrano l'uso di pragma in Ada 2005? Capisco che pragma sono utilizzati per i processi di priorità, solo che non ho incontrato esempi di lavoro!

Molto apprezzato!

È stato utile?

Soluzione

Una ricerca di comp.lang.ada per recenti discussioni circa priorities ha parecchi esempi interessanti. Questo sembra particolarmente proposito alla tua domanda.

Addendum: altre due fonti esemplari sono il Razionale per Ada 95 e Razionale per Ada 2005

Altri suggerimenti

Un Pragma Ada è una caratteristica del linguaggio che permette la regolazione o messa a punto il comportamento di un programma di Ada. Un certo numero di pragma sono definiti dallo standard linguaggio Ada, ma i venditori compilatore può anche definire il proprio.

Il tema del pragma copre molto di più di un semplice processo [tasking] priorità, ecco un di pragma standard e vendor-forniti da verificare.

Che cosa stai cercando di fare con l'aiuto di pragma? priorità stabilite compito?

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

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

   entry Start;

end Prioritized_Task;

Come per gran parte di Ada, credo che la risposta migliore qui è davvero a consultare il LRM . Il sezione sulla gestione delle priorità delle attività è in realtà molto leggibile , per una definizione standard di lingua in ogni caso.

Si noti che è possibile anche impostare la priorità di un'attività in fase di esecuzione senza l'uso di un pragma. Questo rende l'uso del Ada.Dynamic_Priorities pacchetto. Questo è quello che di solito fare in questi giorni, a meno che per qualche strana ragione la priorità desiderata è noto al momento della compilazione, e non mi dispiace hard-coding di esso.

consiglio vivamente che gli utenti avanzati come te colpire attraverso la LRM per vedere cosa la lingua che si fornisce. Prestare particolare attenzione agli allegati (sezioni che iniziano con una lettera), dato che è dove la maggior parte delle cose positive è documentato. Nel tuo caso, probabilmente sarete particolarmente interessati in allegato Real-Time (allegato D).

Sì, vedo questo quello usato spesso a chiudere il compilatore up sulle variabili non referenziate in una procedura:

pragma Unreferenced(Variable);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top