Publicado el 6 de Enero del 2019
1.082 visualizaciones desde el 6 de Enero del 2019
2,3 MB
121 paginas
Creado hace 7a (07/09/2016)
Introducción al lenguaje de programación Ada
Programación de Sistemas de Telecomunicación
Informática II
Departamento de Teoría de la Señal y Comunicación y Sistemas
Telemáticos y Computación
(GSyC)
Universidad Rey Juan Carlos
Septiembre 2016
GSyC - 2016
Introducción a Ada
1
©2016 Grupo de Sistemas y Comunicaciones.
Algunos derechos reservados.
Este trabajo se distribuye bajo la licencia
Creative Commons Attribution Share-Alike
disponible en http://creativecommons.org/licenses/by-sa/3.0/es
GSyC - 2016
Introducción a Ada
2
Contenidos
1
Introducción
2 El primer programa
3 Tipos
4 Punteros
5 Estructuras de control
6 Subprogramas
7 Paquetes
8 Ficheros de texto
9 Excepciones
10 Ejemplo Final
GSyC - 2016
Introducción a Ada
3
Contenidos
Introducción
1
Introducción
2 El primer programa
3 Tipos
4 Punteros
5 Estructuras de control
6 Subprogramas
7 Paquetes
8 Ficheros de texto
9 Excepciones
10 Ejemplo Final
GSyC - 2016
Introducción a Ada
4
Lady Ada Lovelace
Introducción
El nombre del lenguaje hace referencia a Ada Augusta Byron,
condesa de Lovelace (1815–1852)
Hija del poeta romántico inglés Lord Byron.
Matemática, ayudante del inventor Charles Babbage.
Considerada la primera programadora de la historia, al inventar
el primer pseudo-lenguaje de programación para la máquina
analítica.
GSyC - 2016
Introducción a Ada
5
Historia
Introducción
1983: Primera versión del lenguaje Ada: Ada 83
1995: Revisión completa del lenguaje: Ada 95
2005: Nueva revisión (pequeña): Ada 2005
2012: Nueva revisión (muy pequeña): Ada 2012
GSyC - 2016
Introducción a Ada
6
¿Quién utiliza Ada hoy?
Introducción
Industrias aeronáutica y espacial: Eurofighter, Boeing, Airbus,
Ariane. . .
Industria ferroviaria: AVE, metro de Nueva York y París. . .
Otros: BNP, BMW. . .
GSyC - 2016
Introducción a Ada
7
¿Por qué Ada?
Introducción
Costes de desarrollo de software:
Diseño: 15 %
Codificación: 20 %
Depuración: 65 %
El problema del sofware son las erratas en el código. El lenguaje
Ada está diseñado para que el programador cometa las menores
erratas involuntarias posibles.
GSyC - 2016
Introducción a Ada
8
Introducción
Ada es un lenguaje:
estrictamente tipado
estáticamente tipado
Lo que hace que la mayoría de los errores puedan detectarse en
tiempo de compilación, antes de empezar a ejecutar del programa.
GSyC - 2016
Introducción a Ada
9
Introducción
Aunque Ada es un lenguaje muy adecuado para aprender a
programar, tiene muchas características avanzadas que permiten
utilizarlo para:
Programación concurrente
Programación orientada a objetos
Programación de sistemas (a bajo nivel)
Programación de sistemas de tiempo real
Programación de sistemas distribuidos
GSyC - 2016
Introducción a Ada
10
Contenidos
El primer programa
1
Introducción
2 El primer programa
3 Tipos
4 Punteros
5 Estructuras de control
6 Subprogramas
7 Paquetes
8 Ficheros de texto
9 Excepciones
10 Ejemplo Final
GSyC - 2016
Introducción a Ada
11
El primer programa
Código en Ada
with Ada.Text_IO;
-- Programa que muestras las tablas de multiplicar
procedure Tablas_De_Multiplicar is
Resultado: Integer;
begin
Ada.Text_IO.Put_Line("Tablas de Multiplicar");
Ada.Text_IO.Put_Line("=====================");
Ada.Text_IO.New_Line(2);
for Fila in 1..10 loop
for Columna in 1..10 loop
Resultado := Fila * Columna;
Ada.Text_IO.Put (Integer'Image(Fila) & "*" &
Integer'Image(Columna) & "=" &
Integer'Image(Resultado));
Ada.Text_IO.New_Line;
end loop;
end loop;
end Tablas_De_Multiplicar;
GSyC - 2016
Introducción a Ada
12
Mayúsculas y minúsculas
El primer programa
Ada no distingue entre mayúsculas y minúsculas.
El programador, sin embargo, debe intentar usarlas de forma
consistente.
Convenios habituales en Ada:
Palabras reservadas: todo en minúsculas
procedure
for
begin
with
end
loop
Identificadores: Palabras separadas por el carácter (_), cada
palabra empieza con mayúscula y sigue en minúsculas
Tablas_De_Multiplicar
Num_Filas
Fila
Columna
GSyC - 2016
Introducción a Ada
13
Comentarios
El primer programa
Los comentarios en Ada empiezan por dos guiones -- y duran hasta el
final de la línea
Si se quiere un comentario que abarque varias líneas es necesario
empezar cada línea por --:
-- este es un comentario
-- de varias lineas
-- juntas
X := X + 1;
Es conveniente poner un comentario delante de:
todos los subprogramas
declaraciones de variables cuya utilidad no se deduzca de su nombre
trozos de código difíciles de entender
trozos de código sobre los que se duda de su corrección
trozos de código que son provisionales y tendrán necesariamente que
modificarse o eliminarse
Los comentarios se ponen según se va escribiendo el código, no a
posteriori.
GSyC - 2016
Introducción a Ada
14
Legibilidad del código
El primer programa
Un programa se escribe una vez y se lee muchas, por lo que es
imprescindible que sea lo más legible posible.
Ayuda mucho a la legibilidad:
nombres sensatos de los identificadores (no importa que sean
largos si es necesario para entender qué representan)
comentarios en los sitios adecuados
un sangrado correcto (recomendado: 3 caracteres de ancho de
tabulación)
separar con líneas en blanco partes del código que hacen cosas
diferentes
separar los operadores con un espacio por delante y por detrás
Cuando un programador escribe un trozo de código no debe
hacerlo de forma que muestre «lo listo e ingenioso que es»,
sino preguntándose constantemente si quien lo lea lo podrá
entender (quizás sólo lo lea él, pero mucho tiempo después).
GSyC - 2016
Introducción a Ada
15
Uso de paquetes
El primer programa
Para poder utilizar los elementos (subprogramas, tipos y
variables) definidos en un paquete es necesario poner al
principo la cláusula with.
Al utilizar los elementos de un paquete del que se ha hecho
with es necesario cualificar el nombre del elemento con el
nombre del paquete:
with Ada.Text_IO;
...
Ada.Text_IO.Put_Line("Hola");
Si se utiliza la cláusula use ya no hay que cualificar:
with Ada.Text_IO;
use Ada.Text_IO;
...
Put_Line("Hola");
GSyC - 2016
Introducción a Ada
16
No debe emplearse la cláusula use
El primer programa
Si un programa utiliza muchos paquetes, y para todos se
emplea la cláusula use, se hace difícil saber a simple vista de
qué paquete es cada subprograma que se invoca.
Por eso está fuertemente desaconsejado utilizar use.
En su lugar puede utilizarse package ... renames para
acortar nombres de paquetes que se van a utilizar mucho:
with Ada.Text_IO;
procedure Tablas_De_Multiplicar is
package T_IO renames Ada.Text_IO;
...
begin
T_IO.Put_Line("Hola");
...
end Tablas_De_Multiplicar;
GSyC - 2016
Introducción a Ada
17
Entrada/Salida de texto
El primer programa
El paquete Ada.Text_IO se utiliza para entrada/salida de
cadenas de caracteres (Strings).
Hay paquetes que permiten entrada/salida de otros tipos de
datos: Integer, Float, Boolean...
En general resulta más cómodo usar siempre Ada.Text_IO y
convertir otros tipos de datos a String mediante 'Image.
También resulta cómodo usar el operador de concatenación de
Strings: &.
Ejemplo:
Resultado: Integer;
...
Ada.Text_IO.Put_Line("Resultado: " & Integer'Image(Resultado));
'Image es un atributo. En Ada los tipos y las variables tienen
algunos atributos predefinidos. Su sintaxis es especial pero
funcionan como si fueran funciones o procedimientos.
'Image aplicado a un tipo devuelve su representación en forma
de String.
GSyC - 2016
Introducción a Ada
18
Compilador de Ada: GNAT
El primer programa
GNAT es el compilador de referencia en el mundo Ada.
GNAT se empezó a desarrollar en la NYU como proyecto de SW libre
como parte de proceso de estandarización de Ada 95.
AdaCore es una empresa fundada por los desarrolladores originales de
GNAT que ofrece:
una versión comercial del compilador: GNAT Pro
una versión libre del compilador, que modifica anualmente: GNAT GPL
múltiples herramientas comerciales y libres relacionadas con el
desarrollo de SW profesional en el mundo Ada
GNAT GPL es fácilmente instalable en cualquier sistema operativo:
GNU/Linux, MacOS, Windows. Nosotros utilizaremos la versión de
GNU/Linux.
En las versiones actuales de las distribuciones Linux basadas en
Ubuntu, Mint o Debian para instalar GNAT hay que ejectuar en una
ventana de terminal:
sudo apt-get install gnat
GSyC - 2016
Introducción a Ada
19
Compilación, enlazado y ejecución
El primer programa
Un programa en Ada es un procedimiento principal, que puede invocar otros procedimientos
y funciones anidados, y procedimientos y funciones de paquetes.
El nombre del fichero que contiene el procedimiento principal debe ser igual que el nombre
del procedimiento, pero todo en minúsculas y terminado en .adb:
tabla_de_multiplicar.adb
Compilar un fichero fuente es traducirlo a código máquina obteniendo un fichero objeto.
Enlazar un programa es unir todos los ficheros objeto que forman parte del programa
(incluyendo los ficheros objeto de los paquetes que se usan), obteniendo un fichero binario
ejecutable.
En Ada, con GNAT, la compilación y el enlazado de todos los ficheros que forman parte de
un programa se realiza en un solo paso, invocando la orden gnatmake sobre el fichero del
procedimiento principal:
gnatmake tabla_de_multiplicar.adb
Por defecto, las versiones actuales de GNAT compilan según Ada 2012, se puede compilar
para Ada 2005, Ada 95 o incluso Ada 93 añadiendo a gnatmake la opción adecuada:
-gnat2005, -gnat95, -gnat83.
El fichero ejecutable resultante tiene en Linux el mismo nombre que el programa principal,
pero sin extensión: tabla_de_multiplicar
Para ejecutar un fichero ejecutable en una ventana de terminal de Linux, hay que escribir:
./tabla_de_multiplicar
GSyC - 2016
Introducción a Ada
20
Contenidos
Tipos
1
Introducción
2 El primer programa
3 Tipos
4 Punteros
5 Estructuras de control
6 Subprogramas
7 Paquetes
8 Ficheros de texto
9 Excepciones
10 Ejemplo Final
GSyC - 2016
Introducción a Ada
21
Ti
Comentarios de: Introducción al lenguaje de programación Ada (0)
No hay comentarios