Un lenguaje de programación para sistema empotrados

Slides:



Advertisements
Presentaciones similares
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Advertisements

Programación de Computadores
SENTENCIAS SECUENCIALES
Lenguaje PHP Capítulo 4.
Prototipo de compilador didáctico del lenguaje LC99
ADA: lenguaje de programación concurrente
PROGRAMACIÓN.
Circuitos Digitales II
Metodología de la Programación
Presentación Asignatura POF030 Semana 1. Contenido En forma general, los conceptos que se estudiarán en la asignatura son: – Procedures – Functions –
Tema 2: Lenguaje PHP básico
Sintaxis básica del lenguaje
1.2 Sintaxis del lenguaje Java.
EXCEPCIÓN DE ERRORES.
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 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
PL/SQL Francisco Moreno Universidad Nacional.
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Introducción a lenguaje C
MÓDULO DE PROCEDIMIENTOS Los módulos también pueden contener subrutinas y funciones → MÓDULO DE PROCEDIMIENTOS  PROCEDIMIENTOS → son compilados como parte.
Funciones en lenguaje C
PL/SQL Francisco Moreno Universidad Nacional.
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.
Universidad de Tarapacá Fundamentos Lenguaje y Programación Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Arboles Binarios de expresiones
PRÁCTICA INVENTADA TOP MANTA Matías Blanco – Sergio Pérez.
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Lenguaje C.
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
Ing. Ricardo Carlos Inquilla Quispe
Página Web del Lenguaje Pascal.
Microsoft© Visual Basic . Net.
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Diseño lógico combinacional mediante VHDL
Programación Básica con NQC Patricio A. Castillo Pizarro 25/08/2007.
COMPONENTES DE UN ALGORITMOS
Práctica: Sistema de control de ventas y almacenaje para grandes almacenes 03/12/11.
Teoría – Alejandro Gonzalez
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
VBA – Elementos del Lenguaje
Concurrencia en Ada.
Diseño Lógico Combinacional con VHDL
Estructura general de un programa en el servidor de Bases de Datos.
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
Lenguajes de programación
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Patricio A. Castillo José M. Galarce Agosto 23 de 2008 Segunda Clase.
Programación Básica con NQC Patricio A. Castillo 12/04/2008.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
LA ARQUITECTURA O LA FUNCIONALIDAD DEL SISTEMA DefiniciónDefiniciónDefinición Declaración y reglas sintácticas.Declaración y reglas sintácticas.Declaración.
Presente un cuestionario con los aspectos mas importantes sobre los
Fundamentos de Programación
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
Lic. Carla Aguirre Montalvo
Programación de Computadores
Estructuras de Control
Ada 2º Parte (variables, ámbitos, subrutinas, tipos abstractos de datos y excepciones)
U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución.
Algorítmica y Programación
MODULA Lenguaje de Programación Anabel Martín González
Décimo Curso de Programación Básica con NQC “Segunda Clase” Cristián Arenas Ulloa Agosto 29 de 2009.
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.
Transcripción de la presentación:

Un lenguaje de programación para sistema empotrados ADA Introducción Un lenguaje de programación para sistema empotrados

Índice Introducción histórica Aspectos generales Tipos Estructuras de control Subprogramas Paquetes Excepciones Tareas

Introducción histórica 1974. US DoD percibe un elevado gasto en software. En el ámbito de sistemas empotrados había un elevado número de leguajes en uso. 1975. Strawman. Requisitos del nuevo lenguaje. Refinado en Woodenman. 1976. Timan. Identificada la funcionalidad del nuevo lenguaje. Se evaluaron lenguajes existentes para comprobar si cubrían la funcionalidad especificada. Resultado negativo. Se revisaron los requisitos y se generó Ironman. Invitación para proponer el diseño del nuevo lenguaje. Se recibieron 16 propuestas y se seleccionaron 4. CII Honeywell Bull (Green), Intermetrics (Red), Softech (Azul), SRI International (Yellow). Los diseños iniciales se entregaron en 1978 y se evaluaron internacionalmente. Fueron preseleccionados los equipos Rojo y Verde. Se les dio un año más para mejorar. El 2 de mayo de 1979 se seleccionó la propuesta del lenguaje Verde desarrollada por un equipo internacional dirigido por Jean Ichbiah. El DoD anunció que el nuevo lenguaje se llamaría Ada en honor de Augusta Ada Byron (hija de Lord Byron). Ada fue ayudante y patrocinadora de Charles Babagge y trabajó en su máquina analítica mecánica. Se la considera la primera programadora. 1983. ADA estándar ANSI (RM83). 1987. ADA estándar ISO (8652).

Introducción histórica Ada se empezó a utilizar en muy diferentes áreas, además de en sistemas empotrados. En 1988 arrancó el proyecto Ada 9X. Se propusieron 41 nuevos requisitos junto con 22 estudios específicos de áreas que todavía no se entendían completamente. Construir un compilador que tuviera en cuenta todas las propuestas nuevas parecía costoso e innecesario. Ada 95 se constituyó como un núcleo fundamental, junto con una serie de anexos opcionales (estándar ISO 15-2-1995). Se generaron los siguientes documentos de referencia: Reference Manual for the Ada Programming Language (RM95). Annotated Ada Reference Manual (AARM).

Aspectos generales Identificadores. Literales numéricos Comentarios. Identificador ::= letra{[subrayado]letra_o_digito} letra_o_digito ::= letra | digito Literales numéricos Tipos básicos: Integer, float. Ej. Num_alumnos : Integer; Temperatura : Float; Tanto los enteros como los reales pueden tener exponentes, pero en el caso de los enteros los exponentes no pueden ser negativos. Ej. 10.22E-12 12E2 Base del número. Ej. 2#1010# 16#AF28# 4#32#E8 (32 x 48) Comentarios. -- Esto es un comentario

Aspectos generales Declaración Bloques y visibilidad I : integer; P: integer := 6; Q : constant Float := 8.1632; Bloques y visibilidad declare i,k : integer; begin …… i : integer; ……. end;

Tipos Declaración de tipos Declaración de subtipos Type Color is (Rojo, Amarillo, Verde); C : Color := Verde; Q: constant Color := Verde; Type Esquema is array (0..5) of integer; Perfil : Esquema; ………………….. Perfil(0) := 105; Declaración de subtipos Subtype Dia is integer range 1..31; D : Dia;

Tipos Tipos numéricos simples Atributos Cambio de tipo P: Integer; Q : Float; Atributos Subtype Natural is integer range 0..Integer’Last; Subtype Positive is integer range 1..Integer’Last; Cambio de tipo I: Integer := 3; F: Float := 5.6; …… I := Integer( F ) + I; F := F + Float( I );

Tipos Todos los tipos Compuestos Tarea Objeto protegido Discreto Enumerado Registro Entero Con signo Array Modular Elementales Escalar Real Coma flotante Coma fija Ordinario Acceso Decimal

Operadores escalares Operador Operación Operando(s) Resultado And Or xor Y lógico O inclusivo O exclusivo Booleanos Booleano = /= < <= > >= Igualdad Desigualdad Menor que Menor o igual que Mayor que Mayor o igual que Cualquiera Escalar + - Adición Substracción Numérico Igual Identidad Negación * / Mod Rem Multiplicación División Módulo Resto Integer o Float Integer ** Not Abs Exponenciación Valor absoluto Integer, Natural o Float, Integer Float

Estructuras de control if Comando = Izquierda then Girar_Izquierda; elsif Comando = Derecha then Girar_Derecha; elsif Comando = Acelerar then Incrementar_Velocidad; elsif Comando = Decelerar then Decrementar_Velocidad; else Mantener_Velocidad; end if;

Estructuras de control case Comando is when Izquierda => Girar_Izquierda; when Derecha => Girar_Derecha; when Acelerar => Incrementar_Velocidad; when Decelerar => Decrementar_Velocidad; when others => Mantener_Velocidad; end case;

Estructuras de control loop Coge_tenedores; Come; Medita; end loop; loop if Hora_Dormir then exit; end if; Coge_tenedores; Come; Medita; end loop;

Estructuras de control loop exit when Hora_Dormir; Coge_tenedores; Come; Medita; end loop;

Estructuras de control while not Hora_Dormir loop Coge_tenedores; Come; Medita; end loop; for x in 1..3 loop Medita; Coge_tenedores; Come; end loop; for x in reverse 0..10 loop Di_Numero( x ); end loop;

Llamada a procedimiento Sentencias Simple Secuencial Null Asignación Llamada a procedimiento Llamada a entry Requeue Delay Abort Code Control Exit Goto Raise Return Compuesta If Case Loop Block Paralelo Accept Select

Subprogramas Subprograma ::= procedure nombre parámetros | function nombre parámetros resultado parámetros ::= (especificación{; especificación}) especificación ::= lista_identificadores: modo subtipo modo ::= [in | in out | out] resultado ::= return subtipo

Subprogramas Function factorial( N: Positive) return Positive is Begin if N = 1 then return 1; else return N * factorial( N – 1 ); end if; End factorial; Procedure Add (A, B : in integer; C: out integer) is Begin C := A+B; End Add;

Subprogramas Function “*” (A, B: Vector) return Float is Resultado : Float := 0.0; begin for x in A’Range loop Resultado := Resultado + A(x)*B(x); end loop; return Resultado; end “*”;

Paquetes package Pila_enteros is procedure Push( x: in integer ); Package body Pila_enteros is Max: constant := 100; S: array(1..Max) of integer; Cima: integer range 0..Max; procedure Push( x: integer) is begin Cima := Cima + 1; S(Cima) := x; end Push; function Pop return integer is Cima := Cima -1; return S(Cima); end Pop; Cima := 0; end Pila_enteros; package Pila_enteros is procedure Push( x: in integer ); function Pop return integer; end Pila_enteros;

Excepciones Permiten tratar situaciones poco frecuentes, pudiendo controlar con ellas un fracaso del SW. Hay cuatro predefinidas Constraint_Error Program_Error Storage_Error Tasking_Error

Excepciones begin …………. ………..... exception when Constraint_Error => -- Tratamiento especifico end;

Excepciones Package body Pila_enteros is ………. package Pila_enteros is procedure Push( x: integer) is begin if Cima = Max then raise Error; end if; Cima := Cima + 1; S(Cima) := x; end Push; end Pila_enteros; package Pila_enteros is Error: exception; procedure Push( x: in integer ); function Pop return integer; end Pila_enteros;

Excepciones with Pila_enteros; procedure Actuar is begin ………. Pila_enteros.Push(5); exception When Error => put(“Error en la pila”); end Actuar;

Tareas Permiten implementar acciones paralelas Ada suministra posibilidades añadidas Sincronización (rendezvous) Objetos protegidos Facilidades para programación de sistemas de tiempo real

Bibliografía Programming in ADA 95. John Barnes. Addison-Wesley. Real-Time Systems and Programming Languages. Alan Burns, Andy Wellings. Addison-Wesley.