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 - Novedades de Ada 2005

61 - Novedades de Ada 2005

[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
La previsión es que cada 10 años se publique una revisión del estándar ISO del lenguaje Ada. En 1983 apareció la primera versión auspiciada por el ministerio de defensa de EE. UU. Doce años más tarde apareció la revisión conocida como Ada 95 que produjo muchas novedades, entre otras una implementación completa de la orientación a objetos.

Ya han pasado 10 años y un grupo de trabajo de la ISO está preparando la siguiente revisión del lenguaje. La profundidad de la revisión será más modesta que la anterior y de hecho está considerada técnicamente como una enmienda, no una revisión.

Para el diseño de los cambios se partió de las siguientes premisas:

  1. Los cambios han de mantener o mejorar las ventajas actuales de Ada, especialmente en los dominios en los que goza de una mayor implantación que son los que necesitan seguridad y criticidad. Se espera que se mejoren aspectos de tiempo real y de sistemas de alta integridad.
  2. Los cambios han de resolver ciertos problemas detectados en el uso de Ada 95.

El estándar está siendo definido por un grupo de expertos de ISO, ACM SigAda y Ada-Europe.

La publicación del estándar por parte de la ISO está previsto para principios del año 2006. Es por eso que en algún momento los miembros del grupo dudaron si comenzar a llamar a la nueva versión Ada 2006, pero finalmente acordaron promover el nombre Ada 2005. Y decimos promover porque al fin y al cabo Ada 2005 no es un nombre oficial, el nombre oficial continúa siendo simplemente Ada programming language, ISO/IEC 8652:2005(E).

Cambios en el modelo OO


Interfaces al estilo Java


La principal novedad en el modelo de Orientación a Objetos es la incorporación de interfaces al estilo de Java. Es de notar que Ada 95 no admitía herencia múltiple por sus problemas asociados. En Java se resolvió el problema de una manera elegante con la distinción de la herencia de clases de la herencia de interfaces para los que sólo se definen y se heredan los métodos, pero no la implementación.

Este cambio, a parte de mejorar la herencia en Ada, permitirá mejorar la interoperabilidad de Ada con Java, C# y otros lenguajes con interfaces.

Notación Objeto.Método


Una de las principales diferencias entre Ada 95 y otros lenguajes orientados a objetos más populares es la llamada a métodos de un objeto.

En Java y C++:

Objeto.Método (Parámetros);

En Ada 95 (sin cláusula use):

Paquete.Método (Objeto, resto de parámetros);

La notación de Ada 95 tiene la única ventaja de que la parte imperativa y la parte orientada a objetos son más ortogonales entre sí. Sin embargo es un aspecto que le aleja de otros lenguajes orientados a objetos en cuanto a su sintaxis.

Para Ada 2005 se ha decidido adoptar la notación Objeto.Método que resultará más familiar para programadores que vengan de otros lenguajes.

Este cambio sólo afecta a los tagged types (clases en Ada 95) y a la notación de llamada, el resto continúa como en Ada 95. La llamada convencional se sigue admintiendo.

Explicitar cuándo se redefine un método


Se ha añadido la posibilidad de definir un método como overriding o not overriding. Esto proporciona un nivel de seguridad contra futuros cambios en una clase base como eliminar un método que ha sido redefinido por alguna clase derivada. También prevendrá el problema de querer redefinir un método y por escribirlo mal, se cree un nuevo método en vez de redefinirlo. Este descuido nos puede hacer perder horas hasta encontrar que no se llama el método de la clase derivada en vez de la clase base porque hemos puesto Annadir en vez de Anyadir. Además el explicitarlo servirá como documentación para comprender la derivación de clases.

Cambios en los tipos puntero


Los punteros en Ada 95 sólo podían ser de un tipo anónimo en los parámetros de subprogramas. Es decir, esta definición era ilegal:

type A is x; type A_Access is access A; type B is record Campo_Puntero : access A; -- NO, era obligatorio A_Access end record;

Ahora se admite un puntero de tipo anónimo en casi cualquier sitio donde se admite un tipo. Esto eliminará la proliferación de tipos puntero nombrados y las consiguientes conversiones de tipo entre ellos.

También es posible definir un tipo de puntero que apunta a constante y si el tipo admite el valor null o no.

type A is x; type B is access constant A; type C is access not null A;

Dependencia mutua de tipos definidos en paquetes distintos


Se amplia el concepto de tipos incompletos para poder hacer tipos interdependientes definidos en paquetes distintos. Para ello se introduce la sentencia limited with que sólo nos permite hacer uso de los nombres de los tipos del otro paquete.

Visibilidad en la parte privada


Ahora es posible hacer visible un paquete únicamente en la parte privada de una especificación. Esto permitirá usar paquetes hijos privados en la parte privada de un paquete dentro de la misma jerarquía.

private package Wikilibros.Privado is ... end Wikilibros.Privado; private with Wikilibros.Privado; package Wikilibros.Ejemplos is ... -- Aquí no es visible Wikilibros.Privado private -- Aquí podemos hacer uso de Wikilibros.Privado type Mi_Ejemplo is new Wikilibros.Privado.Mi_Tipo; end Wikilibros.Ejemplos;

Inicializaciones por defecto


En un agregado será posible decir que cierto componente de un registro se rellena con el valor por defecto definido en su declaración.

Sintaxis especial para elevar excepciones con mensaje


Se ha simplificado la sintaxis para elevar una excepcion con mensaje, y se ha hecho semejante a levantarla sin mensaje:

Ada 95 raise Problema_Interno; -- Sin mensaje asociado Ada.Exceptions.Raise_Exception (Problema_Interno'Identity, "No más identificadores libres"); -- Con mensaje asociado Ada 2005 raise Problema_Interno; -- Sin mensaje asociado raise Problema_Interno with "No más identificadores libres"; -- Con mensaje asociado

Nuevos pragmas y atributos


Aparecen nuevos pragmas y otros que ya existían en algunas implementaciones como GNAT se estandarizan:

Unsuppress Para desactivar el efecto del pragma Suppress. Assert Para realizar chequeos y asignarles un tratamiento común por configuración. Preelaborable_Initialization Para indicar que la inicialización de un tipo es preelaborable. No_Return Para indicar que un procedimiento no devuelve el control de modo normal. Unchecked_Union Para importar uniones del lenguaje C.

Aparece el atributo Mod que da el módulo de un entero sin signo.

Ampliación de la biblioteca predefinida


Se incluye una biblioteca completa de contenedores al estilo de la STL de C++. Se ha estandarizado un paquete de manejo de directorios y otro de variables de entorno. Aunque estos paquetes los proveían todos los fabricantes de compiladores, la estandarización mejorará la portabilidad de programas Ada entre distintos compiladores.

Así mismo se estandarizan operaciones con vectores y matrices, más operaciones sobre tiempos y fechas y algunos algoritmos de algebra lineal.

Nuevo tipo de caracteres


Aparte del tipo Character (8 bits) y Wide_Character (16 bits) de Ada 95 se añade un tercer tipo Wide_Wide_Character (32 bits) con soporte completo de Unicode.

Además los compiladores deben admitir código fuente codificado en Unicode 4.0, y los identificadores pueden contener letras en cualquier sistema alfabético.

Mejoras en tiempo real y concurrencia


Se ha incluido en el estándar el perfil de Ravenscar. Se han añadido paquetes predefinidos para controlar relojes de tiempo de ejecución.

Se pueden definir interfaces que han de implementar tareas u objetos protegidos. Esta posibilidad traza un puente entre las capacidades de concurrencia y de orientación a objetos del lenguaje.

Enlaces externos


Todo el siguiente material está en inglés:

Publicaciones y ponencias



Ada 2005 Rationale


El Rationale de Ada 2005 describe y justifica los cambios realizados al lenguaje. Está siendo escrito por John Barnes, estos son los capítulos ya publicados:


Requisitos de Ada 2005



Manual de referencia de Ada


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.