David I. Morales A. MCC- IIMAS- UNAM

Slides:



Advertisements
Presentaciones similares
SENTENCIAS SECUENCIALES
Advertisements

ADA: lenguaje de programación concurrente
Un lenguaje de programación para sistema empotrados
Seminario de Lenguajes A – Opción Ada Seminario de Lenguajes A – Opción Ada – Raúl Champredonde1 Tipos definidos por el usuario –Punteros Tipo access:
Seminario de Lenguajes A – Opción Ada Seminario de Lenguajes A – Opción Ada – Raúl Champredonde1 Overloading de subprogramas procedure Put(Item: in integer;
Seminario de Lenguajes A – Opción Ada Estructura general de programas –Especificación de contexto –Encabezado –Declaraciones –Cuerpo Seminario de Lenguajes.
Seminario de Lenguajes A – Opción Ada Seminario de Lenguajes A – Opción Ada – Raúl Champredonde1 Tipos definidos por el usuario –Parámetros array ilimitados.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Arboles Binarios de expresiones
Introduccion. Los lenguajes de programación surgieron para facilitar las tareas de programación, su evolución ha estado marcada por diferentes ideas que.
Programación en Pascal
Diseño lógico combinacional mediante VHDL
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Algorítmica y Programación
MODULA Lenguaje de Programación Anabel Martín González
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
5 Paquetes ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Applications Development I 6.1 Foro Tomas Anzalotta Alvarado.
ESTRUCTURAS DE DATOS Y ALGORITMOS Samuel Peñaló
GESTOR DE BASE DE DATOS CARRERA: COMPUTACIÓN E INFORMÁTICA CURSO: TALLER DE SISTEMAS I DOCENTE: ING. JOSÉ EDUARDO QUISPE TAIPE CICLO: QUINTO.
Unidad 1: Conceptos fundamentales Instituto Tecnológico de Toluca Ing. Sistemas Computacionales Asignatura: Programación Lógica y Funcional Presentan Nieto.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
Universidad Central de Las Villas. Facultad de Construcciones. Departamento de Ingeniería Civil. Computación III Asignatura Profesor Dra. Ana Virginia.
Administración de Sistemas Gestores de Bases de Datos.
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Taller de Java Universidad de los Andes
Convenciones de nomenclatura y diseño
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
Uso de variables de tipo valor
BREVE INTRODUCCION A LA PROGRAMACION
Lenguajes de Programación Tema 3. Paradigma Imperativo
U.T. 11: Introducción A Las Bases De Datos
Fundamentos de la programación orientada a objetos
MANEJO DE ARRELOGS EN C Clase 8: Arreglos.
Estructuras de Control en Visual Basic.net
Página Web del Lenguaje Pascal.
TUTORIAL PSeint.
Sonia Rueda Herencia y Polimorfismo
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
LÓGICA DE PROGRAMACIÓN
Unidad 3. Introducción a la programación
Oracle Pl/SQl Developer – Nivel 1
Tipos Básicos.
Plantillas (Templates)‏
Estructuras Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos que.
Hardware Description Language
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
HERRAMIENTAS DE PROGRAMACIÓN
Diego Hernández R Pascal Variables Diego Hernández R
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
Introducción práctica la uso de la tarjeta Arduino.
Procesamiento de señales Introducción a Matlab 2014
PROGRAMACIÓN (2).
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
Informática Ingeniería en Electrónica y Automática Industrial
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
Algunas Características de C++ no presentes en C
Informática Ingeniería en Electrónica y Automática Industrial
Capítulo 7 USO DE BASES DE DATOS OBJETO- RELACIONALES.
Diego Hernández R Pascal Variables Diego Hernández R
NATURALEZA DE LOS DATOS Valores Numéricos Son los valores que se pueden hacer cálculos aritméticosritméticos Tipos de valores Entero Real Cadena ( “ h”
Programación Modular Programación de Computadoras - Hugo Vega Grupo2: Reina Rodríguez Miriam Salluca.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Templates (en español: Pantillas, modelos, patrones)‏
Transcripción de la presentación:

David I. Morales A. MCC- IIMAS- UNAM Lenguaje ADA 95 David I. Morales A. MCC- IIMAS- UNAM Lenguajes de Programación Dra. Ana Lilia Laureano Cruces Dra. Ana Lilia Laureano Cruces

Introducción Diseñado para aplicaciones militares. 11/24/2018 Introducción Diseñado para aplicaciones militares. Tiene una estructura de bloque y un mecanismo de tipo de datos igual al del lenguaje de programación Pascal. Extensiones para aplicaciones de tiempo real y distribuidas. Forma más segura de encapsulación, e incrementa el desarrollo de objetos y la herencia de métodos. 11/24/2018 MCC - IIMAS - UNAM David I. Morales A. IIMAS-UNAM

Historia En los 70's el Departamento de Defensa de E.U.A. (DoD) se intereso en desarrollar un lenguaje sencillo para usar en sistemas de tiempo real. Reviso cerca de 500 lenguajes usados para desarrollar diversas aplicaciones militares Jean Ichbiah fue elegido en 1979 11/24/2018 MCC - IIMAS - UNAM

El lenguaje Pascal fue el punto de partida para el diseño de ADA Ada es mas extenso y complejo, permite la ejecución concurrente, el control en tiempo real de la ejecución, manejo de excepciones y tipos de datos abstractos 11/24/2018 MCC - IIMAS - UNAM

ADA 95 el mas eficiente compilador de ADA. Estandarizado en 1983, como estandar comercial de E.U.A., militar de E.U.A. e Internacional ANSI. La ultima revisión del lenguaje duro mas de 6 años, desde 1988 hasta 1995, en lo que se llamo el proyecto 9X . Implementación de mejores datos orientados a objetos, librerias jerárquicas y un mejor modelo de tareas para procesos. ADA 95 el mas eficiente compilador de ADA. 11/24/2018 MCC - IIMAS - UNAM

Tipos de Datos Primitivos En ada existen los siguiente tipos de datos: Integer Real (float en ada) Character Boolean String Estos estan predefinidos, en el paquete Standard 11/24/2018 MCC - IIMAS - UNAM

Variables y Constantes Cualquier declaración que empiece con la palabra constant es una constante y se deberá asignar un valor, el cual no se podrá cambiar en la ejecución. Si se omite la palabra constant, la misma declaración define un tipo de dato variable, a la cual se le debe asignar un valor inicial y el cual se podrá cambiar en la ejecución.  Ejemplo: MaxSize constant integer := 500; CurrentSize integer := 0; 11/24/2018 MCC - IIMAS - UNAM

Tipos de Datos Numericos Atributos range (para enteros) y digits (para flotantes)  Ejemplo: type DayOfYear is range 1..366; -- un valor entero de 1 a 366 MyBirhtday: DayOfYear := 219; -- MyBirthday inicializada a 219 type Result is digits 7 -- flotante de 7 digitos Answer: Result :=3.17; -- varible de 7 digitos. 11/24/2018 MCC - IIMAS - UNAM

Los tipos Integer y float estan predefinidos en el paquete estandar como: type integer is range implementation defined; type float is digits implementation defined; 11/24/2018 MCC - IIMAS - UNAM

Enumeraciones Enumeraciones deben de definirse usando un estilo como Pascal de definición e implementación. Ejemplo: type class is (Fresh, Soph, Junior, Senior);         La representación en la ejecución usa el número de posición para cada valor de la literal, empezando con 0 para el primer valor listado, 1 para el segundo, etc. 11/24/2018 MCC - IIMAS - UNAM

Tipos Caracter y Booleano Estas son definidas en el paquete Standard para ser enumeraciones especificas. 11/24/2018 MCC - IIMAS - UNAM

Tipo de Dato Apuntador Se utiliza la palabra access junto con la función primitiva new, new crea un objeto de datosy regresa un apuntador a este. El cual es asignado a una variable de tipo access. Ejemplo type access_typename is access typename; 11/24/2018 MCC - IIMAS - UNAM

Vectores y Arreglos Un arreglo de objetos puede ser declarado con cualquier número de dimensiones, cualquier rango y cualquier tipo de componente. Ejemplo: Table: array (1..10, 1..20) of float; crea una matriz de 10 X 20 de numeros reales; 11/24/2018 MCC - IIMAS - UNAM

PowerOfTwo: array (1..6) of integer :=(2,4,8,16,32,64); Definición de tipos puede ser utilizada para crear clases de cualquier tipo de arreglo de objetos. Ejemplo: type Matrix is array (integer range <>,integer range <>) of float; donde los < > indican un campo que se debe llenar. Inicialización: cualquier arreglo debe de estar inicializado en su declaración. PowerOfTwo: array (1..6) of integer :=(2,4,8,16,32,64); 11/24/2018 MCC - IIMAS - UNAM

Cadena de Caracteres Las cadenas de caracteres son tratadas como un tipo de vector predefinido usando otros dos tipos predefinidos positive (enteros) y character (enumerando los caracteres definidos en el paquete Standard). type string array (positive range <>) of character; Ejemplo: MyString : string(1..30); 11/24/2018 MCC - IIMAS - UNAM

Tipo de Dato Archivo Archivos y operaciones de entrada-salida son definidos como tipos de datos abstractos, usando paquetes predefinidos. El programador de Ada ve a los archivos como tipo de datos que en su estructura interna estan ocultos por ser encapsulados con los paquetes estandares. Existen diferentes tipos de archivos (texto, enteros, reales, etc.); cada paquete tiene su propio tipo de archivo ejemplo en TEXT_IO hay un tipo para archivos secuenciales o solo texto en FLOAT_IO hay un tipo de dato archivo para flotantes, y así sucesivamente. 11/24/2018 MCC - IIMAS - UNAM

Tipo de dato definido por el usuario Los tipos de datos record en Ada son similares que en Pascal. En Ada a diferencia de Pascal un objeto record debe de ser definido primero usando una definición de tipo, para definir la estructura de record y despues dando la declaración de la variable usando el tipo de nombre. 11/24/2018 MCC - IIMAS - UNAM

Ejemplo: type Birthday is                 record                 Month: string (1..3) := "jun";               Day: integer range 1..31 := 17; Year: integer range 1950..2050 := 1970;               end record cada variable del tipo Birthday esta inicializada a "jun" 17 1970. 11/24/2018 MCC - IIMAS - UNAM

MyDay:Birthday := ("SEP",12,1975); Ejemplo: MyDay:Birthday := ("SEP",12,1975); MyDay: Birthday := (Year => 1975, Month =>"SEP", Day => 12); 11/24/2018 MCC - IIMAS - UNAM

Expresiones Expresiones en Ada permiten primitivas y funciones definidas para ser combinadas en secuencias de manera usual. Notación infija es usada para la aritmética binaria, relacional y operaciones booleanas. Notación prefija es usada para operaciones unarias. (+,-, y NOT), los paréntesis deben de utilizarse para agrupar operaciones y la precedencia es la misma que en Pascal. 11/24/2018 MCC - IIMAS - UNAM

= /= < <= > >= in not in and or xor and then or else ** (exponentes) * / mod rem + - abs not (unario + y -) + - & (binarios + y -) = /= < <= > >= in not in and or xor and then or else 11/24/2018 MCC - IIMAS - UNAM

Sentencias Sentencias usuales condicionales (if y case) y las sentencias de iteración (loop, while, for). Todas las sentencias de control terminan con las sentencia end, seguida con la palabra de dicha sentencia; por ejemplo: end if, end loop. 11/24/2018 MCC - IIMAS - UNAM

Sentencia If if boolean expresion then - secuencias de sentencias  elsif boolean expresion then   - secuencia de sentencias                elsif boolean expresion then     - secuencia de sentencias                 ...  else  - secuencia de sentencias                end if; 11/24/2018 MCC - IIMAS - UNAM

Sentencia CASE case expresion is when choice | ...| choice => secuencia de sentencias; ...                when others => secuencia de sentencias; end case; Ejemplo: case GradeLevel is when Fresh => sentencias; when Soph | Junior => secuencias; when Senior => secuencias; 11/24/2018 MCC - IIMAS - UNAM

Sentencia Loop La sentencia básica de iteración tiene la siguiente forma.   loop   - secuencia de sentencias end loop;   La forma de terminar una sentencia de iteración loop se hace explicitamente con las sentencias exit, goto o return. 11/24/2018 MCC - IIMAS - UNAM

while boolean expresion ... Con for hay dos formas. Sentencias controladas pueden ser creadas con las sentencias while y for.          while boolean expresion     ... Con for hay dos formas. for variable name in discrete_range; for variable name in reverse discrete_range; 11/24/2018 MCC - IIMAS - UNAM

for i in 1..10 loop end loop; while k > 0 loop temp:= temp + i; for j in 1.. k loop temp =: temp + j; get(k); 11/24/2018 MCC - IIMAS - UNAM

PROGRAMAS Y SUBPROGRAMAS      Procedimientos, funciones y tareas son los tres tipos de subprogramas que Ada maneja. Procedimiento - programa principal. 11/24/2018 MCC - IIMAS - UNAM

Funciones y Procedimientos Un procedimiento o función tiene la forma de una especificación: procedure procname(formal-parameters) is ... function functioname(formal-parameters) return result_type is * Seguidos de un cuerpo de la forma: secuencia de declaraciones begin secuencia de sentencias exception manejadores de excepciones end procname o functioname; 11/24/2018 MCC - IIMAS - UNAM

Los subprogramas pueden ser recursivos Los subprogramas pueden ser recursivos. La salida normal de un procedimiento o tarea es con la ejecución de return; o return expression para salir de una función En el enunciado formal-parameters deben de ir los tipos de datos con su nombre y su forma de transmisión para ser usado. Function “+” (A,B:in complex) return complex is... 11/24/2018 MCC - IIMAS - UNAM

Excepciones Al final de cada unidad de programa debe de especificarse un manejador de excepciones. Existen varias excepciones predefinidas en los paquetes estandares, todas las demas son declaradas usando la siguiente sentencia:                 exceptionname : exception Un manejador de excepciones empieza con el nombre de la excepción que este maneja, seguida con una secuencia de sentencias que toman la acción apropiada para manejar dicha excepción.        11/24/2018 MCC - IIMAS - UNAM

when exception_name | ... | exception_name => secuencia de sentenecias                ...                when others => secuencia de sentencias; donde cada secuencia de sentencias debera manejar una o mas excepciones nombradas. 11/24/2018 MCC - IIMAS - UNAM

Tareas Es un subprograma que puede ejecutarse concurrentemente con otras tareas. La definición de una tarea tiene una forma general, tiene una especificación que permite a otras tareas comunicarse entre si y un cuerpo de implementación. Usando un tipo de tarea, multiples tareas pueden ser creadas con una definición singular.              11/24/2018 MCC - IIMAS - UNAM

task taskname is -declaraciones de entrada end [taskname]; task body taskname is -secuencia de declaraciones begin -secuencia de setencias exception -manejador de excepciones 11/24/2018 MCC - IIMAS - UNAM

Embedded aplications Para acceso especial a hardware For object_name use at memory_address For entry_name use at interrupt_address 11/24/2018 MCC - IIMAS - UNAM

ABSTRACION Y ENCAPSULAMIENTO La definición de un paquete tiene dos partes una especificación y un cuerpo.La especificación contiene la información necesaria para la correcta utilización del paquete; el cuerpo proveee la encapsulación de variables y subprogramas que son llamados desde afuera. La parte visible de un paquete (todo lo que precede a la palabra private) define que es lo que el usuario final del paquete puede usar en un programa. 11/24/2018 MCC - IIMAS - UNAM

Uso de paquetes Se utiliza la sentencia with para que el paquete a utilizar sea visible. with packagename ; use packagename; with Standard; use Standard; 11/24/2018 MCC - IIMAS - UNAM

Declaración de paquetes package packagename is -declaración de variables private -definición completa de datos privados end [packagename]; packages body packagename is -definiciones de objetos y subprogramas definidos begin -sentencias para inicializar el paquete cuando es por primera vez instanciado exception -manejador de excepciones 11/24/2018 MCC - IIMAS - UNAM

package nombre_actual is new nombre_nuevo(parametros); 11/24/2018 MCC - IIMAS - UNAM

Herencia Ada 95 extiende el concepto de paquete para manejar herencia Type Mydata is tagged record val: myarray; sz:integer:=0; end record; Type Doublestack is new Mydata with record Newdata : myarray; 11/24/2018 MCC - IIMAS - UNAM

Procesamiento en tiempo real Un programa que debe interactuar con dispositivos de entrada y salida u otras tareas en un tiempo determinado. Controladores, con tiempos de reacción de menos de 100 ms. 11/24/2018 MCC - IIMAS - UNAM

En ada existe un paquete llamado Calendar que incluye el tipo Time y una función clock. select DataReady; or delay 0.5; -espera 0.5 segundos end select; 11/24/2018 MCC - IIMAS - UNAM

Ada vs C++ Ada was designed for team development and embedded systems, leading to advantages over C in development time and debugging. An in-depth 1995 study by Stephen F. Zeigler (http://sweng.fallschurch.va.us/AdaIC/docs/reports/cada/cada_art.html) showed that development in Ada costs about half that of C++. It also suggests that Ada produces "almost 90% fewer bugs for the final customer". 11/24/2018 MCC - IIMAS - UNAM

Ejemplo with Text_IO; use Text_IO; procedure Doit is procedure Hola(x: in integer) is begin if x=2 then put("The Truth is out there"); else put ("Die, die, die my darling..."); end if; end Hola; y: integer; begin y:=2; Hola(y); end Doit;  The Truth is out there 11/24/2018 MCC - IIMAS - UNAM

Doit.ali - ada link information file Doit.adb ada body Doit.o objet file Doit.ali - ada link information file herram.ads -- a package specification herram.adb -- a package body usa_herram.adb -- the client program 11/24/2018 MCC - IIMAS - UNAM