Tagoror  
Enciclopedia      Correo Electrónico      Postales Electrónicas      El Tiempo
Buscar en el directorio  Enciclopedia



Lenguaje de programación Ada



Ada - lenguaje de programación cuyo diseño fue encargado por el Departamento de Defensa estadounidense para unificar el uso de los lenguajes de programación en los proyectos que le fuesen entregados. Es un lenguaje diseñado con la seguridad en mente y es multipropósito, pudiendo llegar desde la facilidad de Pascal a la flexibilidad de C pero con una filosofía orientada a la reducción de errores.

Su nombre conmemora a la condesa Ada Lovelace, hija de Lord Byron, a quien se considera la primera programadora de la Historia, por su relación con Charles Babbage, creador de la máquina analítica. El Departamento de Defensa de los Estados Unidos (DoD) y los ministerios equivalentes de varios países europeos exigen la utilización de este lenguaje en los proyectos realizados bajo su patrocinio. También es usado en otros entornos en los que también se necesita una gran seguridad como la gestión del tráfico aéreo (en empresas como Boeing o la española Indra).

Ada se diseñó de manera que permita evitar los errores comunes y difíciles de descubrir. Esto puede hacer que sea muy irritante para los programadores principiantes.

Hasta la fecha la ISO ha publicado dos ediciones del estándar de Ada: la original Ada 83 que incluía conceptos novedosos como las excepciones y la programación genérica; y la revisión Ada 95, que entre otras cosas añadió la capacidad de herencia para completar sus características de lenguaje OOP.

Un compilador de Ada muy usado es GNAT, originalmente desarrollado por la Universidad de Nueva York y mantenido en la actualidad por Ada Core Technologies. Está basado en la tecnología de GCC y es software libre.

Ejemplo de Código Ada

Abajo hay un ejemplo simple (función de Ackermann) de código fuente escrito en Ada, para mostrar sus rasgos principales.

with Ada.Command_Line; use Ada.Command_Line;
with Ada.Text_Io; use Ada.Text_Io;

procedure Ackermann is

   function ack (x : integer; y: integer) return integer is
       begin
           if x = 0 then
               return y + 1;
           elsif y = 0 then
               return ack(x-1,1);
           else
               return ack(x-1,ack(x,y-1));
           end if;
       end ack;
   x,y,a : integer;
begin
   if Argument_Count = 2 then
       x := Integer'Value (Argument(1));
       y := Integer'Value (Argument(2));
   elsif Argument_Count = 1 then
       x := 3;
       y := Integer'Value (Argument(1));
   else
       x := 3;
       y := 3;
   end if;
   a := ack (x,y);
   Put ("Ack (" & Integer'Image (x) & ",");
   Put_Line (Integer'Image (y) & ") = " & Integer'Image (a));
end Ackermann;

Podemos observar que:

  • 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 filosofía de que un programa se escribe una vez, se modifica decenas de veces y se lee miles de veces (legibilidad es más importante que rapidez de escritura).
  • Todo es case-insensitive. Ya que todo el entorno Unix es case-sensitive, a algunos programadores de Unix no les gusta este rasgo de Ada.
  • En este caso, todo el programa es un solo procedimiento, que puede contener subprogramas (procedimientos o funciones) (en este caso: la función ack).
  • Cada sentencia se cierra con un end qúe_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.
  • Se asigna un valor con :=, se comparan dos valores con =. A los programadores de C les puede confundir este rasgo inspirado en Pascal.
  • La sintaxis de atributos es objeto'atributo (o clase'atributo) (nota: esto sólo se puede hacer con los objetos predefinidos, ya que no es el concepto de atributo típico de OOP).
  • Se distingue entre "procedimientos" (subrutinas que no devuelven ningún valor pero pueden modificar sus parámetros) y "funciones" (subrutinas que devuelven un valor y no modifican los parámetros). La mayoría de lenguajes de programación no hacen esta distinción, sin embargo las funciones de Ada favorecen la seguridad al reducir los posibles efectos colaterales, pues no tienen parámetros in out.

Enlaces externos




Tagoror Networks en: España  |  Filipinas  |  Mexico

Los documentos de esta enciclopedia on line se publican bajo la Licencia de Documentación Libre GNU