El lenguaje While. Yolanda Ortega Mallén. Dpto. de Sistemas Informáticos y Computación Universidad Complutense de Madrid

Documentos relacionados
Nociones Básicas de Sémantica: Semántica Denotacional

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

FUNDAMENTOS DE INFORMÁTICA

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Introducción a la Programación en MATLAB



Práctico 5. Definiciones Inductivas - Segunda Parte -

PHP: Lenguaje de programación

EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL

Semántica Denotacional

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Semántica de Primer Orden. Semántica de Primer Orden

6. Autómatas a Pila. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Curso de Java Introducción a la Programación III

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Tema 7. Generación de código

5. Subprogramas Fundamentos de Informática

Ejercicios (Números reales)

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

GUÍA BÁSICA DE SCHEME v.4

Tema 3. Análisis sintáctico descendente

Métodos para la construcción de software fiable: Interpretación Abstracta. María del Mar Gallardo Melgarejo Pedro Merino Gómez

Java para no Programadores

Numeración. Número Es la idea que tenemos sobre la cantidad de los elementos de la naturaleza.

GRAMATICAS LIBRES DEL CONTEXTO

Curso Completo de Visual Basic 6.0

Java para programadores

Álgebra. Curso

El lenguaje C. 1. Identificadores, constantes y variables

Estatutos de Control C# Estatutos de Decisión (Selección)

ESCUELA INTERNACIONAL DE IDIOMAS Avenida Pedro de Heredia, Calle 49a #31-45, barrio el Libano

Estructuras de Decisión Simples y Dobles

Factorización. Ejercicios de factorización. José de Jesús Angel Angel.

Manual de turbo pascal

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

Fundamentos del Lenguaje de Programación Java

Multiplicación de Polinomios. Ejercicios de multiplicación de polinomios. José de Jesús Angel Angel.

11/02/2009 IEC de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC ( Programación en ST )

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Introducción a la Programación en Visual Basic y su aplicación en Excel. M.I. Jaime Alfonso Reyes Cortés

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

Cuantificación: Los Cuantificadores y el resto de la oración

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

EL PROCESO DE DISEÑO DEL SOFTWARE

Estructuras de Control

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Operadores de comparación

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Sintaxis y Semántica del Lenguaje. Gramáticas

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

Práctica 1. Introducción a la programación en ensamblador

TEMARIO EXAMEN DIAGNÓSTICO INICIAL ADMISIÓN MATEMÁTICA

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

! Una variable declarada con final no puede volver a ser reinicializada. numero = 2;! ! Para definir constantes

Tema 2. El lenguaje JAVA

Un. VI. Generador de código intermedio.

sumas = 58 = 48 = 73 = 59 =

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Tema 7: Programación con Matlab

Lenguajes y Gramáticas

Inteligencia Artificial II La Lógica Proposicional como un lenguaje formal

Por qué ExecuTrain? Por qué ExecuTrain? Modalidad de servicio

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Universidad de Managua

Estructuras de control

Conceptos básicos de programación. Arquitectura de Computadoras. Conceptos básicos de programación

Elementos léxicos del lenguaje de programación Java

Parte 4: Estructuras de Control

Estructuras de Repetición (Hacer-Mientras)

Sistemas polinomiales

Lenguaje de programación C. Introducción

Derivadas de Orden superior

Procesadores de Lenguaje

Agenda. BNF y EBNF Brevemente, lo necesario para especificar el lenguaje sobre el que vamos a trabajar.

Estructuras de control

APENDICE CODIFICACION DE LAS ESTRUCTURAS BASICAS

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

DESARROLLO DE APLICACIONES BASICAS DE MICROSOFT VISUAL BASIC. NET AGUILAR MERCADO JANETH

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

es el lugar geométrico de los puntos p tales que p 0 p n o p 0 p o. p x ; y ; z perteneciente a y un vector no

Guía práctica de estudio 05: Diagramas de flujo

4. Operadores Operador asignación

EL CUERPO ORDENADO REALES

Autómatas de Pila y Lenguajes Incontextuales

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

Matemáticas I: Hoja 2 Cálculo matricial y sistemas de ecuaciones lineales

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Ejercicio 1.- En las construcciones siguientes para qué valores de la variable RangoI se ejecutará la sentencia de asignación?

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

REFERENCIA DEL LENGUAJE

Transcripción:

Yolanda Ortega Mallén Dpto. de Sistemas Informáticos y Computación Universidad Complutense de Madrid Yolanda Ortega Mallén (UCM) TPRO 15-16 1/12

Sumario Sintaxis. Semántica de expresiones. Propiedades. Bibliografía Hanne Riis Nielson & Flemming Nielson, Semantics with Applications. An Appetizer, Springer,2007. Yolanda Ortega Mallén (UCM) TPRO 15-16 2/12

Sintaxis Sintaxis Categorías sintácticas: Numerales n Num, Variables x Var, Expresiones aritméticas a Aexp, Expresiones booleanas b Bexp, Sentencias S Stm. Notación BNF (Backus-Naur form) a ::= n x a 1 + a 2 a 1 a 2 a 1 a 2 b ::= true false a 1 = a 2 a 1 a 2 b b 1 b 2 S ::= x := a skip S 1 ; S 2 if b then S 1 else S 2 while b do S Yolanda Ortega Mallén (UCM) TPRO 15-16 3/12

Sintaxis Árboles de sintaxis abstracta z := x ; x := y ; y := z S S S ; S S ; S z := a S ; S S ; S y := a x x := a y := a z := a x := a z y z x y Yolanda Ortega Mallén (UCM) TPRO 15-16 4/12

Semántica de expresiones Semántica de numerales Función semántica N : Num Z n ::= 0 1 n 0 n 1 N [[0]] = 0 N [[1]] = 1 N [[n 0]] = 2 N[[n]] N [[n 1]] = 2 N[[n]] 1 Ejercicio 1.4 Siendo la sintaxis para n n ::= 0 1 0 n 1 n Se puede definir N correctamente? Yolanda Ortega Mallén (UCM) TPRO 15-16 5/12

Semántica de expresiones Técnicas generales Definiciones composicionales 1 Cada categoría sintáctica se especifica mediante su sintaxis abstracta: elementos básicos + elementos compuestos. Descomposición única en los constituyentes inmediatos. 2 Funciones semánticas composicionales para cada categoría sintáctica: una cláusula semántica para cada elemento básico y para cada método de construcción de elementos compuestos. Las cláusulas para los elementos compuestos se definen en términos de la semántica de los elementos constituyentes. Inducción estructural 1 Demostrar que la propiedad se verifica para los elementos básicos. 2 Asumiendo que la propiedad es cierta para todos los constituyentes inmediatos (hipótesis de inducción), demostrar que la propiedad se verifica para los elementos compuestos. Yolanda Ortega Mallén (UCM) TPRO 15-16 6/12

Semántica de expresiones Semántica de expresiones aritméticas Estados State : Var Z Función semántica A : Aexp (State Z) A[[n]]s = N [[n]] A[[x]]s = sx A[[a 1 + a 2 ]]s = A[[a 1 ]]s A[[a 2 ]]s A[[a 1 a 2 ]]s = A[[a 1 ]]s A[[a 2 ]]s A[[a 1 a 2 ]]s = A[[a 1 ]]s A[[a 2 ]]s Yolanda Ortega Mallén (UCM) TPRO 15-16 7/12

Semántica de expresiones Semántica de expresiones aritméticas Ejemplo 1: Sea s x = 3 A[[x + 1]]s = A[[x]]s A[[1]]s = (s x) N[[1]] = 3 1 = 4 Ejemplo 2: Añadimos a A[[ a]]s = 0 A[[a]]s A[[ a]]s = A[[0 a]]s! Ejercicio 1.8 Demostrar que las ecuaciones para A definen una función total. Yolanda Ortega Mallén (UCM) TPRO 15-16 8/12

Semántica de expresiones Semántica de expresiones booleanas Función semántica B : Bexp (State T) T = {tt, ff} B[[true]]s = tt B[[false]]s = ff { tt si A[[a1 ]]s y A[[a 2 ]]s son iguales B[[a 1 = a 2 ]]s = ff si A[[a 1 ]]s y A[[a 2 ]]s son distintos { tt si A[[a1 ]]s es menor o igual que A[[a 2 ]]s B[[a 1 a 2 ]]s = ff si A[[a 1 ]]s es mayor que A[[a 2 ]]s { tt si B[[b]]s = ff B[[ b]]s = ff si B[[b]]s = tt B[[b 1 b 2 ]]s = { tt si B[[b1 ]]s = tt y B[[b 2 ]]s = tt ff si B[[b 1 ]]s = ff o B[[b 2 ]]s = ff Yolanda Ortega Mallén (UCM) TPRO 15-16 9/12

Semántica de expresiones Semántica de expresiones booleanas Ejercicio 1.10 Demostrar que las ecuaciones para B definen una función total. Ejercicio 1.11 Se extiende Bexp a Bexp : b ::= true false a 1 = a 2 a 1 = a 2 a 1 a 2 a 1 a 2 a 1 < a 2 a 1 > a 2 b b 1 b 2 b 1 b 2 b 1 b 2 b 1 b 2 Extender la función semántica B. Las expresiones b 1 y b 2 son equivalentes si para todo estado s B[[b 1 ]]s = B[[b 2 ]]s Demostrar que para cada b Bexp existe b Bexp tal que b y b son equivalentes. Yolanda Ortega Mallén (UCM) TPRO 15-16 10 / 12

Propiedades Variables libres FV(n) = FV(x) = {x} FV(a 1 + a 2 ) = FV(a 1 ) FV(a 2 ) FV(a 1 a 2 ) = FV(a 1 ) FV(a 2 ) FV(a 1 a 2 ) = FV(a 1 ) FV(a 2 ) Lema 1: Sean s, s State tales que x FV(a).s x= s x,entoncesa[[a]]s = A[[a]]s. Ejercicio 1.13 Definir el conjunto de variables libres para una expresión booleana y demostrar un resultado similar al Lema 1. Yolanda Ortega Mallén (UCM) TPRO 15-16 11 / 12

Propiedades Substituciones n[y a 0 ] = n { a0 si x = y x[y a 0 ] = x si x = y (a 1 + a 2 )[y a 0 ] = (a 1 [y a 0 ]) + (a 2 [y a 0 ]) (a 1 a 2 )[y a 0 ] = (a 1 [y a 0 ]) (a 2 [y a 0 ]) (a 1 a 2 )[y a 0 ] = (a 1 [y a 0 ]) (a 2 [y a 0 ]) Actualización de estados: { v si x = y (s[y v])x = sx si x = y Ejercicio 1.14 Demostrar que A[[a[y a 0 ]]]s = A[[a]](s[y A[[a 0 ]]s]) para cualquier estado s. Ejercicio 1.15 Definir la substitución para expresiones booleanas b[y a 0 ] ydemostrarun resultado similar al del ejercicio anterior. Yolanda Ortega Mallén (UCM) TPRO 15-16 12 / 12