Sie sind auf Seite 1von 13

ndice

Lenguaje de Programacin ADA.............................................................................................. 1 Historia ..................................................................................................................................... 1 Compiladores .......................................................................................................................... 2 Caractersticas ........................................................................................................................ 2 Pequea descripcin del lenguaje ....................................................................................... 3 Ejemplos en ADA ................................................................................................................... 3 Estructura bsica de un programa en Ada. ........................................................................ 4 Variables, constantes y tipos. ............................................................................................... 5 Declaracin de variables. .................................................................................................. 5 Definicin de constantes. .................................................................................................. 6 Definicin de tipos. ............................................................................................................. 6 Sentencias, asignacin y expresiones. ............................................................................... 7 Sentencias de control. ........................................................................................................... 7 Seleccin de dos alternativas. .......................................................................................... 7 Seleccin mltiple............................................................................................................... 7 Iteracin. .............................................................................................................................. 8 Bloques. ............................................................................................................................... 9 Operadores principales ....................................................................................................... 10 WEBGRAFA ........................................................................................................................ 12

Lenguaje de Programacin ADA

Ada es un lenguaje de programacin orientado a objetos y fuertemente tipado de forma esttica que fue diseado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje multipropsito, orientado a objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++. Fue diseado con la seguridad en mente y con una filosofa orientada a la reduccin de errores comunes y difciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecucin (desactivables en beneficio del rendimiento). La sincronizacin de tareas se realiza mediante la primitiva rendezvous.

Historia

El lenguaje fue diseado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD). Durante los aos 1970, este departamento tena proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software. Para solucionarlo se busc un lenguaje nico que cumpliese unas ciertas normas recogidas en el documento Steelman. Despus de un estudio de los lenguajes existentes en la poca se decidi que ninguno las cumpla totalmente, por lo que se hizo un concurso pblico al que se presentaron cuatro equipos, cuyas propuestas se nombraron con un color: Rojo (Intermetrics), Verde (CII Honeywell Bull), Azul (SofTEch) y Amarillo (SRI International). Finalmente en mayo de 1979 se seleccion la propuesta Verde diseada por Jean Ichbiah de CII Honeywell Bull, y se le dio el nombre de Ada. Esta propuesta era un sucesor de un lenguaje anterior de este equipo llamado LIS y desarrollado durante los aos 1970.

El nombre se eligi en conmemoracin de lady Ada Augusta Byron (1815-1852) Condesa de Lovelace, hija del poeta Lord George Byron, a quien se considera la primera programadora de la Historia, por su colaboracin y relacin con Charles Babbage, creador de la mquina analtica. El DoD y los ministerios equivalentes de varios pases de la OTAN exigan el uso de este lenguaje en los proyectos que contrataban (el Ada mandate). La obligatoriedad en el caso de Estados Unidos termin en 1997, cuando el DoD comenz a usar productos COTS (commercial off the shelf). Ada ha sido utilizado por la NASA en sistemas VAX.

Compiladores

Un compilador de Ada muy usado es GNAT, originalmente desarrollado por la Universidad de Nueva York bajo patrocinio del DoD. Est basado en la tecnologa de GCC y es software libre. Actualmente est mantenido por AdaCore (antes llamada Ada Core Technologies), empresa que ofrece soporte y servicios sobre el compilador. Existen otros compiladores comerciales.

Caractersticas

La sintaxis, inspirada en Pascal, es bastante legible incluso para personas que no conozcan el lenguaje. Es un lenguaje que no escatima en la longitud de las palabras clave, en la filosofa de que un programa se escribe una vez, se modifica decenas de veces y se lee miles de veces (legibilidad es ms importante que rapidez de escritura). Es indiferente el uso de maysculas y minsculas en los identificadores y palabras claves, es decir es un lenguaje case-insensitive. En Ada, todo el programa es un nico procedimiento, que puede contener subprogramas (procedimientos o funciones). Cada sentencia se cierra con end qu_cerramos. Es un modo de evitar errores y facilitar la lectura. No es necesario hacerlo en el caso de subprogramas, aunque todos los manuales lo aconsejan y casi todos los programadores de Ada lo hacen. El operador de asignacin es :=, el de igualdad =. A los programadores de C y similares les puede confundir este rasgo inspirado en Pascal. La sintaxis de atributos predefinidos es Objeto'Atributo (o Tipo'Atributo) (nota: esto slo aplica a atributos predefinidos por el lenguaje, ya que no es el concepto de atributo tpico de OOP).
2

Se distingue entre "procedimientos" (subrutinas que no devuelven ningn valor pero pueden modificar sus parmetros) y "funciones" (subrutinas que devuelven un valor y no modifican los parmetros). Muchos lenguajes de programacin no hacen esta distincin. Las funciones de Ada favorecen la seguridad al reducir los posibles efectos colaterales, pues no pueden tener parmetros in out.

Pequea descripcin del lenguaje

Ada est hecho para soportar la construccin de grandes programas. Un programa en Ada esta ordinariamente diseado como una coleccin de grandes componentes de software llamados "Packages", cada uno representando un tipo de dato abstracto o un conjunto de objetos de datos compartidos entre subprogramas. Un programa en Ada consiste de un procedimiento singular que sirve como programa principal, el cual declara variables, y ejecuta sentencias, incluyendo llamadas a otros subprogramas. Un programa Ada puede envolver tareas que se ejecuten concurrentemente, si esto pasa entonces estas son inicializadas directamente por el programa principal y forman el nivel superior de la estructura del programa. Ada provee un gran nmero de tipos de datos, incluyendo enteros, reales , enumeraciones, boleanos, arreglos, records, cadena de caracteres y apuntadores. Abstraccin y encapsulacin de tipos de datos y operaciones definidas por el usuario son provistas por la caracterstica de "package". El control de secuencia dentro de un subprograma utiliza expresiones y estructuras de control similares a las que tiene Pascal. La estructura de control de datos de Ada utiliza la organizacin de estructura de bloque esttica como en Pascal, y adems el lenguaje posee llamadas a referencias no estticas. Desde que los programas pueden ejecutar tareas concurrentemente, estos pueden correr subprogramas independientemente uno del otro. Un rea de almacenamiento de memoria para objetos de datos construidos es requerida. Esta rea de almacenamiento debe ser distribuida entre las diferentes computadoras en que se ejecutan estas tareas.

Ejemplos en ADA

Hola Mundo Un ejemplo comn sobre la sintaxis de los lenguajes de programacin es el "Hola Mundo". En Ada, se realizara as:
3

with Ada.Text_IO; use Ada.Text_IO; procedure Hello is begin Put_Line ("Hola, mundo!"); end Hello; Tipos de datos Estructuras de control Paquetes, procedimientos y funciones Concurrencia

Estructura bsica de un programa en Ada.

Un programa en Ada consta de al menos dos partes: una clusula de contexto y un procedimiento principal. --Programa simple en Ada with Text_IO; --clusula de contexto procedure Hola is --procedimiento principal --Parte de declaraciones begin --Cuerpo de sentencias ejecutables Text_IO.Put_Line("Hola"); end Hola; (Las lneas a partir de los dobles guiones,"--", son comentarios. Todas las sentencias en Ada deben terminar con un punto y coma (";")) Las clusulas de contexto sirven para especificar el uso de libreras externas al programa. Una librera es un conjunto de recursos (procedimientos, funciones, tipos, ...) ya desarrollados y compilados, y que se hallan disponibles para ser usados por nuestros programas. En el caso del ejemplo, la clusula "with" de la 2 lnea est indicando que nuestro programa va a hacer uso de la librera "Text_IO", la cual proporciona servicios bsicos de entrada/salida; concretamente, en el ejemplo se est usando el procedimiento "Put_Line", que saca un mensaje por pantalla, y se especifica que hay que buscarlo en la librera Text_IO, antecediendo al nombre del procedimiento con el nombre de la

librera seguido por un punto ("."). Si se quiere evitar tener que hacer este tipo de cualificaciones con todos los recursos externos que se empleen, se habr de disponer una clusula "use" como en el siguiente ejemplo: --Programa simple en Ada with Text_IO; --clusula de contexto use Text_IO; procedure Hola is --procedimiento principal --Parte de declaraciones begin --Cuerpo de sentencias ejecutables Put_Line("Hola"); --ya no es necesario poner "Text_IO." end Hola; El procedimiento principal es el punto de arranque del programa, del que dependen en ltima instancia, todos los dems procedimientos y funciones que se utilicen. Un procedimiento consta de: (1) una cabecera (lnea 5 del segundo ejemplo), donde se le da nombre, (2) una seccin de declaraciones, donde se declaran y/o definen todos los elementos que el procedimiento va a utilizar (variables, constantes, tipos, procedimientos, funciones, ...), y (3) el cuerpo del procedimiento --las sentencias que describen su algoritmo, lneas 7 a 10--, que comienza con la palabra "begin" y termina con la palabra "end" acompaada del nombre del procedimiento. El cuerpo de un procedimiento no puede estar vaco, en caso de desear, circunstancialmente, tener un procedimiento que no haga nada, debe de contener la instruccin "null;".

Variables, constantes y tipos.

Declaracin de variables. Las variables se declaran como "nombre_de_variable : tipo", tal como en el siguiente ejemplo: x : integer; --una variable de tipo integer llamada x

Si hay que declarar varias variables del mismo tipo, se puede formar una lista, aunque ello no es obligatorio: x, y, z : integer;

Las variables pueden inicializarse con un valor en el momento de su declaracin:

x, y, z : integer := 0;

Definicin de constantes. Para definir una constante, se hace igual que para declarar una variable inicializndola al mismo tiempo, pero poniendo la palabra "constant" antes del tipo. c: constant integer := 10;

Ahora bien, si se trata de constantes numricas, tambin se pueden definir sin especificar su tipo: pi: constant := 3.1416;

Definicin de tipos. Ada, como todos los lenguajes, ofrece un conjunto bsico de tipos predefinidos junto con mecanismos para definir nuevos tipos. Para definir un nuevo tipo, se usa la palabra "type", seguida del nombre del nuevo tipo; la palabra "is", y la descripcin del nuevo tipo: Type byte is range 0..255;

Ada, tambin ofrece la posibilidad de definir un subtipo de un tipo ya definido. Por ejemplo: Subtype byte is integer range 0..255;

La diferencia entre ambas definiciones de byte, es que en la segunda, al ser un subtipo, es una versin restringida el tipo base de la definicin (en este caso, integer), mientras que en la primera se est definiendo un tipo distinto, que no es compatible con el integer, a pesar de que su rango de valores parezca coincidir con una parte de los enteros. De hecho, se puede declarar un nuevo tipo para que sea en todo igual a otro existente, y sin embargo incompatible: type MiEntero is new integer; type MiEnteroCorto is new integer range 0..255;

Sentencias, asignacin y expresiones.

Toda sentencia en Ada termina en punto y coma (";"). Existe la sentencia nula (que no hace nada), y se expresa como "null;". La asignacin se expresa con el smbolo ":=". Ejemplo: x := 3;

En la parte izquierda de la asignacin debe ir una variable. En la parte derecha de la asignacin va una expresin de un tipo adecuado. Una expresin est formada por operandos (constantes, variables, expresiones, ...) y operadores. Como resultado de su evaluacin una expresin da lugar a un valor. El tipo de la expresin es el tipo del valor resultante. Ejemplos: -4.0 -4.0 + A B**2 - 4.0*A*C Index = 0 or Item_Hit (Cold and Sunny) or Warm A**(B**C)

Sentencias de control.

Seleccin de dos alternativas. if Exp_lgica then sentencias; end if; if Exp_lgica then sentencias; else sentencias; end if;

Seleccin mltiple. case selector is when alternativa => sentencias; when alternativa => sentencias; ...
7

when others => sentencias; end case; El selector debe ser una expresin discreta de tipos integer o enumerados (tipo ordinal). Las alternativas pueden ser uno o varios valores, o rangos, del tipo del selector separados por "|" (equivale al operador OR). case mes is when 1 .. 2 | 12 => put("El invierno es duro"); when 3 .. 5 => put("Primavera de la vida"); when 6 .. 8 => put("Estacin llena de diversin"); when 9 .. 11 => put("poca de reflexin"); when others => put("En qu planeta ests?"); end case; Los valores no pueden repetirse entre dos clusulas "when". En el caso de que las clusulas "when" no cubran todos los posibles valores del tipo del selector, es necesario incluir la clusula "others" para los valores no contemplados.

Iteracin. Controlada por contador. for variable in [reverse] secuencia de control loop ... end loop; La variable de control es local al bucle, NO SE DECLARA (es del tipo de la secuencia de control) y no puede modificarse explcitamente. La secuencia de control puede ser un rango de un tipo ordinal (entero o enumerado). Cuando se utiliza "reverse" la secuencia de control se recorre en orden inverso: for num in reverse 1..5 loop Put(num); -- escribe 5 4 3 2 1 end loop;

Controlada por condicin lgica. while condicin loop ... end loop;

Bucles sin esquema de iteracin. En Ada se puede construir un bucle tal como: loop ... end loop; del que se sale, normalmente, mediante una sentencia "exit when" o con una alternativa que contenga una clusula "exit". loop ... exit when condicin; ... end loop;

Bloques. Un bloque es una sentencia compuesta, formada por una secuencia de sentencias agrupadas mediante las palabras delimitadoras "begin", "end", y posiblemente acompaadas de algunas declaraciones locales. [declare declaraciones locales] begin sentencias end; (la parte delimitada por corchetes es opcional) Un bloque puede ponerse en cualquier sitio donde pueda ponerse una sentencia simple. Ejemplos de bloques: --bloque sin declaraciones locales begin Put_Line("Hola"); end; --bloque con declaraciones locales declare Aux : integer; --la variable Aux slo existe dentro del bloque begin Aux := i; --i, j estn declarados en un mbito ms externo i := j; j := Aux; end;

Operadores principales
Clasificacin Operador Descripcin Delimitadores () Llamada a funcin Asociacin De izquierda a derecha

() .

Elemento de un array Operador punto para los miembros de un estructura Exponenciacin De derecha a izquierda

Aritmticos

**

abs NOT *

Valor absoluto no lgico Multiplicacin De izquierda a derecha

/ rem = &

Divisin Resto Menos unario Suma unaria Concatenacin de string De izquierda a derecha

+ Relacionales =

Suma Sustraccin Igualdad lgica De izquierda a derecha

/= < <= > >=

Desigualdad lgica Menor que Menor o igual que Mayor que Mayor o igual que

10

in not in Lgicos and

Miembro de No miembro de Y lgico De izquierda a derecha

or xor and then or else Asignacin :=

O lgico O exclusive

Asignacin simple

De derecha a izquierda De izquierda a derecha

Separador

Separador coma

11

WEBGRAFA

http://es.wikipedia.org/wiki/Ada_(lenguaje_de_programacin) http://www.gedlc.ulpgc.es/docencia/mp_i/GuiaAda/

12

Das könnte Ihnen auch gefallen