Download - LENGUAJE DE PROGRAMACIÓN ADA
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 1/24
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 2/24
HISTORIA
A principios de los años de 1970 el Departamento deDefensa identifico un grave problema en el coste del softwareen los sistemas de computadoras “empotradas”, es decir,sistemas que están incluidos en distintos vehículos militares.La principal causa de este problema era la ausencia de unlenguaje de programación adecuado y de un entorno deprogramación para desarrollar y mantener este software.
En 1975 el Departamento de Defensa formo un grupo detrabajo en lenguaje de alto orden cuya misión era:
1. Identificar el conjunto completo de requerimientos para loslenguajes del DD.
2. Evaluar la adecuación de los lenguajes ya existentesseleccionados sobre la base de estos requerimientos.
3. Hacer una recomendación sobre si el DD debía adoptar unoo mas lenguajes existentes o promover el diseño de unonuevo.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 3/24
HISTORIA
Durante el periodo 1976-1977 se realizo una extensaevaluación de los veintitrés lenguajes existentes, de los cualesninguno era un candidato adecuada por lo tanto debíadesarrollarse un nuevo lenguaje.
En 1977 se inicio el diseño de un nuevo lenguaje como unproyecto competitivo, se seleccionaron cuatro de loscompetidores para desarrollar diseños detallados del lenguaje(AZUL, AMARILLO, ROJO Y VERDE) se evaluaron extensamenteen 1978 y en 1979 fue seleccionado el diseño VERDE propuestopor Honeywell-Bull. El lenguaje se denomino Ada enreconocimiento de Augusta Ada Byron considerada por algunoscomo la primera programadora del mundo.
Desde 1979, los esfuerzos de han dirigido a desarrollar undocumento e implementaciones estándar para Ada. El primero detales documentos se publico en 1980, y la versión final, llamadaReference Manual for the Ada Programming Language, fueaprobado a principios de 1983 como el estándar militar.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 4/24
FILOSOFIA
Ada contiene mecanismos especiales para la gestión desucesos concurrentes en un momento de tiempo real,
desarrollando paquetes específicos de la aplicación ydefiniendo operadores y procedimientos genéricos.
Ada esta orientado a usarse como lenguaje deprogramación de sistemas, particularmente en las áreasen las que es necesario un control en tiempo real deprocesos asíncronos.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 5/24
PARADIGMA
Ada es un lenguaje de programación orientado a objetos
y fuertemente tipado de forma estática.
Ada se usa principalmente en entornos en los que senecesita una gran seguridad y fiabilidad como ladefensa, la aeronáutica (Boeing o Airbus), la gestión deltráfico aéreo (como Indra en España) y la industria
aeroespacial entre otros.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 6/24
ESTRUCTURA
Un programa en Ada es una instancia de la así llamada “unidad de compilación”, el cual también puede ser un “subprograma” o un paquete. En su forma mas sencilla unprograma comprende una “clausula de contexto” y un
“procedimiento” el cual, a su vez, contiene declaraciones y
una serie de sentencias.A continuación se muestra un sencillo programa en Ada
que calcula y presenta la media de un númeroindeterminado de números de entrada.
En el programa se utiliza la variable x para almacenarun numero leído y la variable n para determinar el numero
de números introducidos en el proceso, las variables sumay med contienen la suma de los números y su mediarespectivamente.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 7/24
with TEXT_TO:
procedure PROMEDIADOR is
use TEXT_IO; use INTEGER_IO; use FLOAT_IO;
X, SUMA, MED: FLOAT;
N: INTEGER;
begin
N := 0; SUMA := 0.0;
PUT (“INTRODUCIR UNA SERIE DE NUMEROS”); NEW_LINE;
GET(X);
loop
N :=N+1;
SUMA := SUMA+X;
GET (X);
end loop;
exception
when END_ERROR =>
MED :=SUMA FLOAT (N);
PUT (N, 5); PUT(“ numerous dados<) ; NEW_LINE;
PUT (MED); PUT(“es su media<); NEW_LINE;
end PROMEDIADOR;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 8/24
De forma general vemos que begin… end y loop.. end
loop se utilizan para agrupar sentencias. Entonces lassentencias se encuentran a continuación de loop, en esteprograma se trata como un grupo se repite hasta que sepresenta el final de la entrada (END_ERROR). El formatogeneral de un programa en Ada queda determinado porel programador.
Los comentario se escriben con doble guion, los nombrede variables, de programas y otros identificadores, seescriben en mayúsculas. Pueden usarse también letrasminúsculas pero su uso no crean nombres distintos. Esdecir la variable llamada X y la variable x son la misma.La definición en Ada adopta este criterio con visitas apromocionar la máxima transportabilidad de losprogramas.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 9/24
Tipos de datos y valores
elementales
Tipos de datos escalares:
1. FLOAT: -10^75 a +10^75 con 6 o 7 dígitos decimales.
2. INTEGER: -32768 a 32767
Tipos de enumeración:
1. BOOLEAN: TRUE o FALSE
2. CHARACTER
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 10/24
Nombres, variables y
declaraciones Una declaración de variable tiene la siguiente forma
general:
Lista identificadores: tipo
Ejemplo:
X, SUMA, MED: FLOAT;
N: INTEGER;
Una variable puede inicializarse en el momento en el
que se declara añadiéndole un símbolo de asignación (:=)y el propio valor inicial después de el.
N:INTEGER :=0;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 11/24
Palabras reservadas en Ada
PALABRAS RESERVADAS DEL LENGUAJE ADA abort at delta exception in null private renames terminate xor
abs begin digits exit is of procedure restricted then abstract
accept body do for limited or raise return type aliased
access case else function loop others range select use interface
all
constant
elsif
generic
mod
out
reverse
separate
when
overriding
and declare end goto new package record subtype while tagged
array delay entry if not pragma rem task with until
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 12/24
Estructuras de Control
Controlan la estructura de la ejecución de un programa:
SENTENCIA GOTO: La forma básica de la sentenciabásica de goto es la siguiente:
goto etiqueta;
“Etiqueta” denota aquí la etiqueta de alguna otra sentencia
del programa y puede ser un identificador que se colocadelante de alguna otra sentencia y va entre los delimitadores<<Y>> . Además restringe el uso de las sentencias goto, deforma que no puedan transferir el control al inferior o fuera delbloque o procedimiento actual u otra forma que defina un nivelde control de ejecución. En general las sentencias goto nodeben de utilizarse, puesto que en la mayoría de los casospuede conseguirse una mejor estructura de control sin ellas.
Cuando se ejecuta la sentencia goto sirve para interrumpirla sentencia normal (textual) de ejecución de sentenciastransfiriendo el control a la sentencia que tiene la etiquetaindicada.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 13/24
Sentencias condicionales: La forma de la sentenciacondicional puede ser cualquiera de las siguientes:
1 if B thenS1
end if;
2 if B then
S1
else
S2
end if;
3 if B then
S1
elsif B then
S2
end if;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 14/24
B es cualquier expresión con un resultado booleano.
La forma 3 muestra el comienzo de sentencias if anidadas y puede existir cualquier numero de elsif anidados. Además, la ultima elsif del anidamiento puede iropcional en seguida de alguna clausula else como en laforma 2. Esta procede como se espera, evaluándose cadaexpresión B hasta que se alcance el primer resultado TRUE
con el cual se ejecuta la correspondiente secuencia desentencias, saltándose todas las demás.
Ejemplo:
if A<B then
A:=A+1;
B:=B-1;
end if;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 15/24
LA SENTENCIA CASE: Permite la elección de una seriede sentencias alternativas dependiendo de valor de una
expresión. Tiene la siguiente forma:
Case e is
when v1 =>S1
when v2=>S2
.
.
.
when vn => Sn
when others=>T
end case;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 16/24
Aquí, se denota a una expresión, v1 …. Es una lista devalores alternativos que e se puede tomar, y cada una de las
s1,… , sn y T denotan la serie correspondiente de sentencias quese ejecutara para cada valor. La alternativa others es opcional eindica que se realizara una acción en el caso de que e no tomeninguno de los valores v1,… , vn.
Ejemplo: supongamos, que queremos realizar una de cuatroacciones diferentes dependiendo de si la dirección del vientoactual DIR es N, S, E u O, respectivamente. Esto puedeespecificarse mediante una sentencia case como sigue:
case DIR in
when N=> ACCION_1;
when S=> ACCION_2;
when E=> ACCION_3;
when O=> ACCION_4;
end case;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 17/24
Así pues, la sentencia case es equivalente a un anidamiento desentencias if. El anterior ejemplo puede ser escritoequivalentemente como:
if DIR=N then ACCION_1;
elsif DIR=S then ACCION_2;
elsif DIR=E then ACCION_3;
elsif DIR=O then ACCION_4;
end if;
Lo cual es sustancialmente mas tedioso de escribir; en general,cualquiera de los valores v1, …, vn, puede designar a una serie dealternativas (separadas por | ) o a un rango. Por ejemplo, en elejemplo anterior podemos especificar ACCION_1 cuando DIR es N oE diciendo “when N|E=> ACCION_1;” .
La sentencia case y otras necesitan frecuentemente una
alternativa que consista en que la secuencia de sentencias que seejecute sea vacía. Ada da la “sentencia nula” escribiendosimplemente: null;
Para este propósito. Cuando se ejecuta una sentencia null no sucedenada, pero si se la utiliza la salida de una escritura compleja decontrol es normalmente mas suave.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 18/24
SENTENCIAS ITERATIVAS
Gran parte de la programación consiste en la correctaespecificación de bucles iterativos. Ada tiene varias formasde la sentencia loop para este propósito.
Un “bucle controlado” puede describirse como la
ejecución repetida de una secuencia de sentencias hastaque cierta condición se haga TRUE. Gran parte de talesbucles son “controlados por contador”, en los cuales unavariable de control es inicializada, comparada eincrementada cada vez que se ejecuta la secuencia desentencias. Cuando la variable crece por encima del límiteespecificado, termina la ejecución del bucle.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 19/24
En el siguiente esquema i es la variable de control y m1,m2 ym3 son expresiones aritméticas correspondientes al valor inicial,
el limite y el valor del incremento de la variable de control,respectivamente.
for i in m1,…m2
loop
secuencia de sentencias
end loop;
Por ejemplo, el siguiente bucle es una suma de los enterosdesde 1 a 10:
for I in 1...10
loopSUMA :=SUM+I;
end loop;
Suponiendo que SUMA esta inicializada a cero.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 20/24
Cuando se utilizan sentencias loop deben tenerse encuenta otros 2 aspectos. Primero, el valor del incremento nonecesita ser positivo. Por ejemplo SUMA puede calcularse enorden inverso al ejemplo anterior rescribiendo simplemente lasentencia for como sigue:
for I in reverse 1…10
Loop
SUMA :=SUMA+1;end loop;
La forma while de la sentencia loop se utiliza paracontrolar bucles que se repiten un numero indeterminado deveces. Tiene la siguiente forma:
while Bloop
Secuencia de sentencias
end loop;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 21/24
EJEMPLO DE UN PROGRAMA ENADA
with Ada.Text_IO;
procedure Hola_Mundo is begin
Ada.Text_IO.Put_Line("¡Hola, mundo!");
end Hola_Mundo;
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 22/24
VERSIONES DE ADA
Ada 83
La primera versión del lenguaje se estandarizó en 1983. Estaversión se establecen los principios fundadores de la lengua, yunas pocas lenguas existentes ofrecen la amplitud de lafuncionalidad que ya estaba en Ada 83.
Ada 95Fue el primer lenguaje orientado a objetos estandarizados a
nivel internacional, con más de tres años por delante de lasegunda (C + +).
Ada 2005
Ada 2005 es un verdadero lenguaje industrial que conservalas ventajas de las versiones anteriores y ofrece apoyo a lasnecesidades de hoy: herencia, interfaces, bibliotecas paralelas ydistribuidas de ejecución, y la compatibilidad con estándares de laindustria.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 23/24
COMPILADORES
Un compilador de Ada muy usado es GNAT,
originalmente desarrollado por la Universidad de NuevaYork bajo patrocinio del DoD. Está basado en latecnología de GCC y es software libre. Actualmente estámantenido por AdaCore (antes llamada Ada CoreTechnologies), empresa que ofrece soporte y serviciossobre el compilador.
5/14/2018 LENGUAJE DE PROGRAMACIÓN ADA - slidepdf.com
http://slidepdf.com/reader/full/lenguaje-de-programacion-ada 24/24
REFERENCIAS
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada
http://es.wikipedia.org/wiki/Ada_(lenguaje_de_programaci%C3%B3n)
http://www.gedlc.ulpgc.es/docencia/NGA/Ada2005/ada/reserved/reservadas.html
Lenguajes de Programación
Segunda Edición
Allen B. Tucker Jr.
Editorial McGraw-Hill