Capitulos de este wiki
  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
  37. 37 Declaraciones
  38. 38 Ámbito
  39. 39 Visibilidad
  40. 40 Renombrado
  41. 41 La biblioteca Ada (unidades y subunidades)
  42. 42 Unidades de biblioteca
  43. 43 Unidades hijas
  44. 44 Subunidades
  45. 45 Compilación separada y dependiente
  46. 46 Tipos abstractos de datos
  47. 47 Tipos limitados
  48. 48 Unidades genéricas
  49. 49 Excepciones
  50. 50 Paquete Ada. Exceptions
  51. 51 Concurrencia
  52. 52 Tareas
  53. 53 Sincronización de tareas mediante puntos de entrada o citas (entry)
  54. 54 Aceptación de citas (accept)
  55. 55 Selección de citas (select)
  56. 56 Llamadas a punto de entrada complejas
  57. 57 Tareas dinamicas: creación dinamica de tareas (tipos t
  58. 58 Dependencia de tareas
  59. 59 Ejemplos de tareas
  60. 60 Programación distribuida con GLADE
  61. 61 Novedades de Ada 2005
  62. 62 Unidades predefinidas
  63. 63 Paquete Ada.Strings.Fixed
  64. 64 Paquete Ada.Strings.Unbounded
  65. 65 Paquete Ada. Text_IO
  66. 66 Paquete Ada.Text_IO.Editing
  67. 67 Paquete Ada. Float_Text_IO
  68. 68 Paquete Ada. Sequential_IO
  69. 69 Paquete Ada. Command_Line
  70. 70 Paquete Interfaces
  71. 71 Recursos en la Web

Curso de Ada - Pragmas

30 - Pragmas

[editar]
Curso gratis creado por José Alfonso Malo Romero. Extraido de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n
16 de Marzo de 2006

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 del compilador GNAT.

A - C



D - H



I - L



M - S



T - Z



Manual de referencia de Ada


Ada 95



Ada 2005


[editar]

12 opiniones

LEO

EXCELENTE QUISIERA BAJARLO PARA ESTUDIARLO
wnhjxssjjjaunxasxahqwedqbuxyquwdqd

qwkqwmnwhw wwbwyw wywbwsyw wywvwdwwuw wrwvwjwtsacxanya xyhwtsvabgsx atxnquxvaxc
Estudio psicopedagogia.

Hola en verdad cada aporte me esde gran interes asta para los que no dicen nada, pero en realidad hay que ayudar al mundo, ofrecindole mas que estos aportes, sin odtener nada a canbio ya que nedie quiere el mal para si mismo pero seamos mas humanos y no vemos por nosotros, ayudemos a las personas sin importar raza o lengua y te daras cuenta que tu odtendras ganancias sin hacer daño a nadie educando a los hijos de otros que numca tendran una oportunidad. Tn fe en ti mismo y no para que los demas te veamos, mas sin enbargo para que tu sientas que si eres muy capaz, dejala la relegion aparte, tus titulos, tus vicios, tu avaricia por ser mas grande que el mismo cesar; pero este mundo sin tu ayuda se enfermara pronto. Mirate tu mismo, mira a los presidentes del mundo compitiendo por el tajo mas grando; ellos creen que an ganado, pero no se dancuenta que una persona mas pequeña que ellos en la tierra sin dinero y sin oportuninades podra hacer la diferencia. Vamos azlo por ultimo asi como tu eres, de una forma ipocrita, con mentiras, con rabia omgolpes pero por ultimo te daras cuenta que tus hijos seran los dueños de tu esfuerso y seras muy importante, y tu odio se convertira en algo mas alla de la fe. Dios ayuda asta el mentiroso a adrse cuenta que el es el unico que se daña en esta competencia. Yo soy un hombre con miles de defectos, pero es logico que soy como tu de falso, y espero tu tanbien me ayudes a salir de este mundo de mentiras donde los afectados son tus hijos y los mios. Vamos ayuda tu mundo y este curso tendra sentido grandemente.
No esta mal.

La pena es que no está muy extendido y existen lenguajes mejores.
Me gusta.

Me gustó!.
1 2 3 | siguiente >

Cursos gratis relacionados con 'Curso de Ada'

El objetivo de este curso es aprender a programar en el lenguaje Ada, desde sus... Más »
Completo curso de Linux, un sistema operativo gratuito y de libre distribución inspirado en el... Más »
El más completo curso de Oracle.
La ortografía del español.
Linux es una gran herramienta, la uso desde hace años y se ha convertido en... Más »

Autor y licencia de 'Curso de Ada'


Curso gratis de José Alfonso Malo Romero. Extraido de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n CopyLeft
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.