Intr Ada
dit
UPM
Introducción a Ada
Juan Antonio de la Puente DIT/UPM
Índice
x
Introducción
– cómo escribir programas sencillos
© Juan Antonio de la Puente 2005-2007
x
Datos e instrucciones
– aspectos básicos del lenguaje
x
Abstracción de datos
– tipos de datos abstractos
x
Programación con objetos
– herencia, polimorfismo, clases e interfaces
x
Otrostemas
25/02/09
Introducción a Ada
2
© Juan Antonio de la Puente 2005-2007
Introducción
25/02/09
Introducción a Ada
3
Ada
x
Es un lenguaje imperativo, descendiente de Pascal
– estructura en bloques – fuertemente tipado – orientado a objetos
© Juan Antonio de la Puente 2005-2007
x
Es un lenguaje pensado para realizar sistemas empotrados de gran dimensión
–concurrencia y tiempo real incluidos en el lenguaje – módulos (paquetes) que se compilan por separado
x
Tres versiones normalizadas
– Ada 83 (ISO 8652:1987) – Ada 95 (ISO 8652:1995) – Ada 2005 (ISO 8652:1995 /Amd 1:2007)
25/02/09
Introducción a Ada
4
Estructura de un programa en Ada
x
Un programa en Ada se compone de una o más unidades de programa
– subprogramas(procedimientos y funciones) – paquetes (módulos) – tareas y objetos protegidos (ejecución concurrente)
© Juan Antonio de la Puente 2005-2007
x
Los dos primeros se pueden compilar por separado
– un programa se hace a base de componentes – hay un procedimiento principal que se ejecuta inicialmente
» a partir de ahí se pueden ejecutar otras unidades de programa
– normalmente se encapsula todo lodemás en paquetes
» hay una biblioteca de paquetes predefinidos » se pueden añadir otros para cada programa concreto
– el compilador comprueba todas las interfaces
25/02/09
Introducción a Ada
5
Procedimientos
x
Una abstracción básica que representa una acción:
procedure [] is begin end ;
© Juan Antonio de la Puente 2005-2007
x
Las declaraciones se elaboran alcomenzar la ejecución
– reservar memoria, asignar valor inicial, etc.
x
Las instrucciones se ejecutan después
25/02/09
Introducción a Ada
6
Ejemplo
© Juan Antonio de la Puente 2005-2007
with Ada.Text_IO; procedure Hello is use Ada.Text_IO; begin Put(“Hello”); New_Line; end Hello;
-- paquete de biblioteca -- acceso al paquete
25/02/09
Introducción a Ada
7Compilación con GNAT
x
Compilación y montaje:
$ gcc -c hello.adb $ gnatbind hello $ gnatlink hello # compila el fichero fuente # genera código de elaboración # monta los módulos objeto
© Juan Antonio de la Puente 2005-2007
x
Se puede hacer todo de una vez:
$ gnatmake hello # compila todo lo que haga falta
x
Ejecución:
$ ./hello
25/02/09
Introducción a Ada
8
Paquetes
xUn paquete es un módulo donde se declaran datos, tipos de datos, operaciones, etc. Tiene dos partes (que se compilan por separado)
– especificación: define la interfaz visible del paquete
» declaraciones de tipos (y a veces objetos) de datos » declaraciones de operaciones (subprogramas)
© Juan Antonio de la Puente 2005-2007
x
– cuerpo: contiene los detalles de la implementación
»tipos, objetos y subprogramas adicionales (para uso local) » cuerpos de subprogramas declarados en la especificación
Todo lo que aparece en el cuerpo es invisible para el resto del programa
25/02/09 Introducción a Ada 9
Especificación de un paquete
© Juan Antonio de la Puente 2005-2007
package is end ;
25/02/09
Introducción a Ada
10
Ejemplo
package Simple_IO is
©Juan Antonio de la Puente 2005-2007
procedure procedure procedure procedure
Get (F : out Float); Put (F : in Float); Put (S : in String); New_Line;
end Simple_IO;
25/02/09
Introducción a Ada
11
Utilización de paquetes
with Simple_IO, Ada.Numerics.Elementary_Functions; procedure Root is use Simple_IO, Ada.Numerics.Elementary_Functions; X : Float; begin Put(“Enter a number...
Regístrate para leer el documento completo.