LENGUAJE DE PROGRAMACIÓN ADA

24

Transcript of LENGUAJE DE PROGRAMACIÓN ADA

Page 1: 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

Page 2: LENGUAJE DE PROGRAMACIÓN ADA

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.

Page 3: LENGUAJE DE PROGRAMACIÓN ADA

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.

Page 4: LENGUAJE DE PROGRAMACIÓN ADA

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.

Page 5: LENGUAJE DE PROGRAMACIÓN ADA

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.

Page 6: LENGUAJE DE PROGRAMACIÓN ADA

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.

Page 7: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 8: LENGUAJE DE PROGRAMACIÓN ADA

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.

 

Page 9: LENGUAJE DE PROGRAMACIÓN ADA

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 

 

Page 10: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 11: LENGUAJE DE PROGRAMACIÓN ADA

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 

 

Page 12: LENGUAJE DE PROGRAMACIÓN ADA

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.

 

Page 13: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 14: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 15: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 16: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 17: LENGUAJE DE PROGRAMACIÓN ADA

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. 

 

Page 18: LENGUAJE DE PROGRAMACIÓN ADA

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.

 

Page 19: LENGUAJE DE PROGRAMACIÓN ADA

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.

 

Page 20: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 21: LENGUAJE DE PROGRAMACIÓN ADA

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;

 

Page 22: LENGUAJE DE PROGRAMACIÓN ADA

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.

 

Page 23: LENGUAJE DE PROGRAMACIÓN ADA

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.