Pregunta
Can mí suministro de cualquier persona con ejemplos de trabajo sencillos que ilustran el uso de pragmas en Ada 2005? Entiendo que pragmas se utilizan para los procesos de prioridades, solo que no he encontrado ejemplos de trabajo!
muy apreciada!
Solución
Una búsqueda en comp.lang.ada
para discusiones recientes sobre priorities
tiene varios ejemplos interesantes. Éste parece particularmente a propósito a su pregunta.
Adición: Otras dos fuentes ejemplares son la Justificación de Ada 95 y Justificación de Ada 2005
Otros consejos
Una Ada Pragma es una característica del lenguaje que permite ajustar o afinar el comportamiento de un programa de Ada. Un número de pragmas se definen por la norma lenguaje Ada, pero los fabricantes de compiladores también puede definir su propia cuenta.
El tema de pragmas cubre mucho más que simplemente proceso [tarea] prioridades, he aquí una lista de de pragmas estándar y proporcionados por el proveedor a la salida.
¿Qué es exactamente estás tratando de hacer con la ayuda de pragmas? prioridades de tareas conjunto?
-- Not compile checked:
with System; use System;
task Prioritized_Task is
pragma Priority(System.Default_Priority + 1);
entry Start;
end Prioritized_Task;
Como con la mayor parte de Ada, creo que la mejor respuesta aquí es realmente a
Tenga en cuenta que también puede establecer la prioridad de una tarea en tiempo de ejecución sin el uso de un pragma. Esto hace que el uso de la Ada.Dynamic_Priorities
paquete. Esto es lo que suelen hacer en estos días, a menos que por alguna extraña razón se conoce la prioridad deseada en tiempo de compilación, y no me importa que codificantes duro.
I altamente sugieren que los usuarios avanzados, tales como a ti mismo asoman por los LRM a ver lo que todo el idioma que ofrece. Prestar especial atención a los anexos (la sección que empieza con una letra), ya que es donde la mayor parte del material de buena documentada. En su caso, es probable que va a estar interesado en particular en el tiempo real anexo (anexo D).
Sí, veo esto se utiliza a menudo para cerrar el compilador arriba sobre las variables referenciados en un procedimiento:
pragma Unreferenced(Variable);