Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Ada - Pragmas

Curso de Ada - Pragmas

 ****- (10 opiniones)
GNU Free Documentation License Curso gratis de José Alfonso Malo Romero - 16 de Marzo de 2006
Temas Relacionados: Programación estructurada
30. Pragmas

Descripción


Los pragmas son sentencias especiales que controlan el comportamiento del compilador, es decir son directivas de compilador. Tienen esta forma estándar:

pragma Nombre (Lista_de_argumentos);

La Lista_de_argumentos es opcional, no todos los pragmas necesitan argumentos.

Ejemplo


Imaginemos que deseamos hacer que una llamada a un subprograma se convierta en una expansión del código en el código objeto generado. Esto se suele hacer con subprogramas que son muy cortos, en los que se tarda más en realizar las operaciones necesarias en código máquina para llamar a la subrutina, que en realizar el código de la subrutina en sí. Para conseguir esta expansión del código se utiliza el pragma Inline.

function A_Pesetas (Euros : T_Euros) return T_Pesetas is begin return Euros * 166.386; end A_Pesetas; pragma Inline (A_Pesetas);

Siempre que se llame a A_Pesetas (Precio_en_Euros), el resultado en el código objeto sería equivalente a escribir Precio_en_Euros * 166.386 en lugar de la llamada.

Lista de pragmas definidos por el lenguaje


A continuación se presenta una tabla con los pragmas de Ada, sus argumentos, un enlace a la sección del Manual de referencia de Ada donde se define y una nota entre las que podemos encontrar:

Ada 2005 Este es un nuevo pragma que aparecerá en el estándar de Ada 2005. Obsoleto Este es un pragma que se considera obsoleto pero se mantiene por compatibilidad. No es aconsejable usarlo en código nuevo.

A - H


Pragmas de Ada (A - H)|| Pragma || Argumentos || Enlace al ARM || Notas ||
|| All_Calls_Remote || [(library_unit_name)] || E.2.3 ||
|| Assert || ([Check =>] boolean_expression[, [Message =>] string_expression]) || 11.4.2 || (Ada 2005) ||
|| Assertion_Policy || (policy_identifier) || 11.4.2 || (Ada 2005) ||
|| Asynchronous || (local_name) || E.4.1 ||
|| Atomic || (local_name) || C.6 ||
|| Atomic_Components || (array_local_name) || C.6 ||
|| Attach_Handler || (handler_name, expression) || C.3.1 ||
|| Controlled || (first_subtype_local_name) || 13.11.3 ||
|| Convention || ([Convention =>] convention_identifier, [Entity =>] local_name) || B.1 ||
|| Detect_Blocking || || H.5 || (Ada 2005) ||
|| Discard_Names || [([On => ] local_name)] || C.5 ||
|| Elaborate || (library_unit_name{, library_unit_name}) || 10.2.1 ||
|| Elaborate_All || (library_unit_name{, library_unit_name}) || 10.2.1 ||
|| Elaborate_Body || [(library_unit_name)] || 10.2.1 ||
|| Export || ([Convention =>] convention_identifier, [Entity =>] local_name [, [External_Name =>] string_expression] [, [Link_Name =>] string_expression]) || B.1 ||

I - O


Pragmas de Ada (I - O)|| Pragma || Argumentos || Enlace al ARM || Notas ||
|| Import || ([Convention =>] convention_identifier, [Entity =>] local_name [, [External_Name =>] string_expression] [, [Link_Name =>] string_expression]) || B.1 ||
|| Detect_Blocking || || || (Ada 2005) ||
|| Inline || (name {, name}) || 6.3.2 ||
|| Inspection_Point || [(object_name {, object_name})] || H.3.2 ||
|| Interface || || || (Obsoleto) ||
|| Interrupt_Handler || (handler_name) || C.3.1 ||
|| Interrupt_Priority || [(expression)] || D.1 ||
|| Linker_Options || (string_expression) || B.1 ||
|| List || (identifier) || 2.8 ||
|| Locking_Policy || (policy_identifier) || D.3 ||
|| Memory_Size || || || (Obsoleto) ||
|| No_Return || (procedure_local_name{, procedure_local_name}) || 6.5.1 || (Ada 2005) ||
|| Normalize_Scalars || || H.1 ||
|| Optimize || (identifier) || 2.8 ||

P - R


Pragmas de Ada (P - R)|| Pragma || Argumentos || Enlace al ARM || Notas ||
|| Pack || (first_subtype_local_name) || 13.2 ||
|| Page || || 2.8 ||
|| Partition_Elaboration_Policy || (policy_identifier) || H.6 || (Ada 2005) ||
|| Preelaborable_Initialization || (direct_name) || 10.2.1 || (Ada 2005) ||
|| Preelaborate || [(library_unit_name)] || 10.2.1 ||
|| Priority || (expression) || D.1 ||
|| Priority_Specific_Dispatching || (policy_identifier, first_priority_expression, last_priority_expression) || D.2.2 || (Ada 2005) ||
|| Profile || (profile_identifier {, profile_pragma_argument_association}) || D.13 || (Ada 2005) Véase Perfil de Ravenscar en Wikipedia. ||
|| Pure || [(library_unit_name)] || 10.2.1 ||
|| Queuing_Policy || (policy_identifier) || D.4 ||
|| Remote_Call_Interface || [(library_unit_name)] || E.2.3 ||
|| Remote_Types || [(library_unit_name)] || E.2.2 ||
|| Relative_Deadline || (relative_deadline_expression) || D.2.6 || (Ada 2005) ||
|| Restrictions || (restriction{, restriction}) || 13.12 ||
|| Reviewable || || H.3.1 ||

S - Z


Pragmas de Ada (S - Z)|| Pragma || Argumentos || Enlace al ARM || Notas ||
|| Shared || || || (Obsoleto) ||
|| Shared_Passive || [(library_unit_name)] || E.2.1 ||
|| Storage_Size || (expression) || 13.3 ||
|| Storage_Unit || || || (Obsoleto) ||
|| Suppress || (identifier [, [On =>] name]) || 11.5 ||
|| System_Name || || || (Obsoleto) ||
|| Task_Dispatching_Policy || (policy_identifier ) || D.2.2 ||
|| Unchecked_Union || (first_subtype_local_name) || B.3.3 || (Ada 2005) ||
|| Unsuppress || (identifier) || 11.5 || (Ada 2005) ||
|| Volatile || (local_name) || C.6 ||
|| Volatile_Components || (array_local_name) || C.6 ||

Lista de pragmas definidos por la implementación


La siguiente lista de pragmas no están disponibles en cualquier compilador, sólo en aquellos que han decidido implementarlos:

GNAT Éste es un pragma definido por la implementación del compilador GNAT.

A - C



D - H



I - L



M - S



T - Z



Manual de referencia de Ada


Ada 95



Ada 2005


Tabla de contenidos
  1. 1 - Introducción
  2. 2 - Historia
  3. 3 - Manual de referencia
  4. 4 - Instalación
  5. 5 - Hola Mundo
  6. 6 - Elementos del lenguaje
  7. 7 - Tipos
  8. 8 - Enteros
  9. 9 - Enumeraciones
  10. 10 - Coma flotante
  11. 11 - Coma fija
  12. 12 - Arrays
  13. 13 - Strings
  14. 14 - Registros
  15. 15 - Registros discriminados
  16. 16 - Registros variantes
  17. 17 - Punteros a objetos
  18. 18 - Punteros a subprogramas
  19. 19 - Tipos derivados
  20. 20 - Tipos etiquetados (orientación a objetos)
  21. 21 - Subtipos
  22. 22 - Objetos (variables y constantes)
  23. 23 - Atributos
  24. 24 - Expresiones
  25. 25 - Operadores
  26. 26 - Sentencias y estructuras de control
  27. 27 - Subprogramas
  28. 28 - Sobrecarga
  29. 29 - Entrada/salida
  30. 30 - Pragmas
  31. 31 - Interfaz con otros lenguajes
  32. 32 - Diseño y programación de sistemas grandes
  33. 33 - Paquetes
  34. 34 - Clausula use
  35. 35 - Clausula with
  36. 36 - Paquete Standard
  1. 37 - Declaraciones
  2. 38 - Ámbito
  3. 39 - Visibilidad
  4. 40 - Renombrado
  5. 41 - La biblioteca Ada (unidades y subunidades)
  6. 42 - Unidades de biblioteca
  7. 43 - Unidades hijas
  8. 44 - Subunidades
  9. 45 - Compilación separada y dependiente
  10. 46 - Tipos abstractos de datos
  11. 47 - Tipos limitados
  12. 48 - Unidades genéricas
  13. 49 - Excepciones
  14. 50 - Paquete Ada.Exceptions
  15. 51 - Concurrencia
  16. 52 - Tareas
  17. 53 - Sincronización de tareas mediante puntos de entrada o citas (entry)
  18. 54 - Aceptación de citas (accept)
  19. 55 - Selección de citas (select)
  20. 56 - Llamadas a punto de entrada complejas
  21. 57 - Tareas dinamicas: creación dinamica de tareas (tipos t
  22. 58 - Dependencia de tareas
  23. 59 - Ejemplos de tareas
  24. 60 - Programación distribuida con GLADE
  25. 61 - Novedades de Ada 2005
  26. 62 - Unidades predefinidas
  27. 63 - Paquete Ada.Strings.Fixed
  28. 64 - Paquete Ada.Strings.Unbounded
  29. 65 - Paquete Ada.Text_IO
  30. 66 - Paquete Ada.Text_IO.Editing
  31. 67 - Paquete Ada.Float_Text_IO
  32. 68 - Paquete Ada.Sequential_IO
  33. 69 - Paquete Ada.Command_Line
  34. 70 - Paquete Interfaces
  35. 71 - Recursos en la Web
Autor y licencia de 'Curso de Ada - Pragmas'
José Alfonso Malo Romero Extraído de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n GNU Free Documentation License
El contenido está disponible bajo los términos de GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Curso de Ada - Pragmas'

Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante... Más »
La idea de este curso surgió de varias conversaciones entre amig@s de la cuadrilla y... Más »
Este es un curso tremendamente completo, guiado y con ejemplos y prácticas pensadas para convertirlo... Más »
Este tutorial presenta los conceptos básicos de líneas de transmisión (Transmission lines), así como una... Más »
Publicidad, término utilizado para referirse a cualquier anuncio destinado al público y cuyo objetivo es... Más »
Gente Wiki
Elquis Benito Pacheco Rudas
Soy profesor de matemática, física e informática, mi especialidad es trabajar con niños en base a un proyecto llamado club...
Oliver Olivero
Actualmente estoy cursando Licenciatura en lenguas extrangeras. Basicamente estoy aprendiendo ingles y frances, pero tengo un gusto especial por el...
Idioma japonés
Abdiel Rodríguez S.
Odontólogo, con maestría en salud pública y posgrado en docencia universitaria. Actualmente laboro como jefe de capacitación en el Ministerio...
Prótesis dental, Clínica dental,...
Laurent
Soy instructor de oratoria y locucion. Capacitando a jovenes promesas de la comunicacion asi como a empresarios y ejecutivos...
Guillermo Arteaga
Tengo una empresa dedicada al área de la salud, contamos con algunas distribuciones de marcas reconocidas en el mercado, como...
Horacio Jaime
Trabajo en usa y sud amèrica auditando corporaciones y ong´s por mas de 35 años a la fecha (mexico 20 años-...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?