FAQ

Os presentamos la lista de preguntas frecuentes (con respuestas) sobre Ada. Podéis proponer más preguntas en el foro e intentaremos contestarlas.

¿Qué es Ada?

Ada es un lenguaje de programación estructurado, orientado a objetos y fuertemente tipado que fue diseñado por Jean Ichbiah de Cii Honeywell Bull y que ganó un concurso público como nuevo lenguaje para el Departamento de Defensa de EE.UU. Está estandarizado por ISO en sus tres ediciones: Ada 83, Ada 95 y Ada 2005. Es de propósito general, pero es especialmente útil en sistemas críticos y de tiempo real. Destaca por su orientación al descubrimiento temprano de los errores típicos de programación, a la seguridad en la ejecución del código (por ejemplo, no hay buffer overflow), y a la eficiencia (es un lenguaje compilado).

He visto escrito ADA, pero aquí se escribe Ada. ¿Cuál es la forma correcta y qué significa el nombre?

Sin duda es preferible Ada, puesto que no son siglas sino el nombre de la persona que escribió el primer programa informático de la Historia, la matemática Ada Byron, condesa de Lovelace. Al igual que Pascal, este nombre es un homenaje a un importante personaje de la computación.

Sin embargo, como el lenguaje no es sensible a mayúsculas, podemos decir que Ada y ADA son equivalentes 😉

Como curiosidad, decir que ADA como siglas puede significar: Asociación de Automovilistas, American Dental Association, American Dissabilities Act y otros tantos.

¿Se usa todavía este lenguaje antiguo?

Aunque es un lenguaje con unos cuantos añitos en el mercado yo no lo calificaría como antiguo: el primer estándar data de 1983 pero ha tenido actualizaciones del lenguaje en 1995 y 2005.

¿Quién está usando Ada? Más gente de lo que pueda parecer, pero casi siempre en proyectos donde se valora mucho la seguridad y la mantenibilidad del software. Tienes listados de uso de Ada en:

  1. Real-World Projects
    Powered by the Ada Programming Language
  2. Look Who’s Using Ada

¿Es Ada un lenguaje orientado a objetos?, en algunos sitios dicen que es simplemente imperativo…

Ada 95 es, como C++, un lenguaje orientado a objetos mixto, es decir, no fuerza al programador al uso del paradigma de la orientación a objetos para la resolución de cualquier problema. En Ada se puede programar siguiendo el clásico paradigma de programación procedimental, pero de un modo más mantenible que, por ejemplo C o Pascal.

En cuanto a los sitios que dicen que Ada es un lenguaje imperativo, seguramente se refieran a Ada 83 que no poseía herencia, aunque contaba ya con otras características de la POO, por lo que se podía considerar uno de esos lenguajes “basados en objetos” como dicen algunos expertos. En conclusión, Ada 83 no era totalmente orientado a objetos; Ada 95 es tan orientado a objetos como C++, excepto que como Java, descarta la posibilidad de herencia múltiple.

¿Por qué el compilador no me deja dividir dos enteros y guardarlos en un float?, ¿no existe conversión implícita entre tipos numéricos?

En Ada no existe conversión explícita de enteros a reales y viceversa. Esto se hace para evitar sorpresas desagradables y obtener un resultado truncado cuando se esperaba conservar toda la precisión.

Así, el operador “/” para enteros es la división entera, para dividir dos enteros y que el resultado sea el de la división con decimales, hay que convertir primero los operandos a un tipo real:

procedure División is
-- Ejemplo de división de enteros
b : Integer := 5;
c : Integer := 3;
a : Float;
begin
a := b / c; -- Ilegal, el resultado es entero y la variable real.
a := Float (b) / Float (c); -- a vale 1.666
a := Float (b / c); -- a vale 1.0
end;

Posted on febrero 22nd, 2009 by Gneuromante

Comments are closed.

Foro

e-Books

Enlaces

Etiquetas

Feed Canalada

Copyright © 2017 . All rights reserved.

Tech Blue designed by Hive Designs • Ported by Free WordPress Themes and Online Marketing