Gramáticas y parsers LR(K)

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Gramáticas y parsers LR(K)"

Transcripción

1 Gramáticas y parsers LR(K)» Son (al igual que los LL) una familia de parsers para analizar gramáticas libres de contexto. Se caracterizan por:» Son analizados sintácticos ascendentes.» Leen entrada de izq. a der. (L = left-to-right)» para encontrar y producir una derivación más a la derecha de dicha cadena (R = rightmost derivation)» K corresponde a la cantidad de símbolos de lookahead.

2 » Pizarrón Ejemplo

3 Gramáticas y parsers LR(K)» Vamos a ver varios tipos de parsers LR:» LR(0) - SLR(1) - LALR(1) - LR(1)» Forma general de los algoritmos LR(K) incluye:» stack» tablas de parseo» operaciones básicas:» aceptar/rechazar» shift» reduce

4 Modelo de un analizador sintáctico LR» Pizarrón

5 Algunas definiciones» Handle: (informalmente) subcadena de una forma sentencial, que coincide con el lado derecho de una producción y cuya reducción representa un paso en una derivación a derecha, en reversa.» Prefijos viables: prefijos de una forma sentencial derecha que no sobrepasan el handle ubicado más a la derecha.

6 Pasos de un algoritmo LR» Paso 1: construir el AFD del lenguaje con el conjunto de prefijos viables.» Paso 2: a partir de éste calcular las tablas de acciones para decidir si hacer un shift o un reduce» (o detectar conflictos que indiquen que la gramática NO es LR).» Hacer todo lo que dijimos antes ir leyendo la entrada, apilando y reduciendo según indique la tabla hasta terminar.

7 Lo que vamos a ver hoy Resumen de la construcción de un parser LR(0) Limitaciones de los lenguajes LR(0) Construcción de un parser engine SLR(1) Limitaciones de los lenguajes SLR(1) Oscar Bonilla 2 Universidad Galileo

8 Item LR(0)» (Informalmente) es una producción con un punto en alguna posición del lado derecho.» Para qué me sirve esto?

9 Items LR(0) Tenemos que capturar cuánto de una producción hemos escaneado hasta ahora <X> ( <X> ) Representado por 4 ítems <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) Oscar Bonilla 3 Universidad Galileo

10 Ejemplo de ítems La gramática <S> <X> $ <X> ( <X> ) <X> ( ) Items <S> <X> $ <S> <X> $ <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( ) <X> ( ) <X> ( ) Oscar Bonilla 4 Universidad Galileo

11 Items LR(0)» Los estados del AFD que vamos a armar son conjunto de items.» Cómo utilizaríamos esto en el AFD?

12 Idea clave de los Items Si el estado actual contiene el ítem A α c β y el símbolo actual en el buffer de entrada es c El estado le dice al parser que ejecute un shift El siguiente estado va a contener A α c β Si el estado contiene el ítem A α El estado le dice al parser que ejecute un reduce Si el estado contiene el ítem S α $ y el buffer de entrada está vacío El estado le dice al parser que ejecute un accept Oscar Bonilla 5 Universidad Galileo

13 Closure() de un conjunto de ítems Closure encuentra todos los ítems en el mismo estado del AFD Algoritmo para closure(i) Todo ítem en I es también un ítem en closure(i) Si A α B β está en closure(i) y B γ es un ítem, entonces agregamos B γ a closure(i) Repetir hasta que no se puedan agregar más ítems a closure(i) Oscar Bonilla 6 Universidad Galileo

14 Ejemplo de Closure Encontrar closure(<x> ( <X> ) ) <X> ( <X> ) <X> ( <X> ) <X> ( ) Items <S> <X> $ <S> <X> $ <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( ) <X> ( ) <X> ( ) Oscar Bonilla 7 Universidad Galileo

15 Goto() de un conjunto de ítems Goto encuentra el nuevo estado después de consumir un símbolo de la gramática mientras estamos en el estado actual Algoritmo para goto(i, X) donde I es un conjunto de ítems y X es un símbolo de la gramática goto(i, X) = closure( { A α X β A α X β en I }) Goto es el nuevo conjunto obtenido al mover el punto sobre X Oscar Bonilla 8 Universidad Galileo

16 Ejemplo de Goto Encontrar goto(<x> ( <X> ), <X> ) Items <X> ( <X> ) <S> <X> $ <S> <X> $ <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( ) <X> ( ) <X> ( ) Oscar Bonilla 9 Universidad Galileo

17 Construyendo los estados del AFD Comenzamos con la producción <S > <S> $ El primer estado es closure(<s > <S> $) Elegimos un estado I Para cada A α X β en I encontrar goto(i, X) si goto(i, X) no es ya un estado, creamos uno Agregamos una arista X del estado I al estado goto(i, X) Repetimos hasta que no sea posible agregar nada más Oscar Bonilla 10 Universidad Galileo

18 Ejemplo de construcción de los estados del AFD s0 <S> <X> $ <X> ( <X> ) <X> ( ) X ( s1 <S> <X> $ s2 <X> ( <X> ) <X> ( ) <X> ( <X> ) <X> ( ) ) s5 <X> ( ) ( X s3 <X> ( <X> ) ) s4 <X> ( <X> ) Oscar Bonilla 11 Universidad Galileo

19 Creando las tablas de parseo Para cada estado Transición a otro estado usando un símbolo terminal es un shift a ese estado (shift to sn) Transición a otro estado usando un no-terminal es un goto a ese estado (goto sn) Si hay un ítem A α en el estado hacemos una reducción con esa producción para todos los terminales (reduce k) Oscar Bonilla 12 Universidad Galileo

20 Ejemplo de Construcción de Parse Table ACTION Goto State ( ) $ X s0 shift to s2 error error goto s1 s1 error error accept s2 shift to s2 shift to s5 error goto s3 s3 error shift to s4 error s4 reduce (2) reduce (2) reduce (2) s5 reduce (3) reduce (3) reduce (3) s0 <S> <X> $ <X> ( <X> ) <X> ( ) X ( s1 <S> <X> $ s2 <X> ( <X> ) <X> ( ) <X> ( <X> ) <X> ( ) ) s5 <X> ( ) s3 <X> ( <X> ) Oscar Bonilla 13 Universidad Galileo ( X ) s4 <X> ( <X> )

21 Construcción de un Parse Engine LR(0) Agregamos la producción especial S S $ Encontramos los ítems Creamos el AFD Usando las funciones closure y goto Construimos la tabla de parseo LR(0) Parser Engine Oscar Bonilla 14 Universidad Galileo

22

23 » Pizarrón Seguimiento

24 Resumen Resumen de la construcción de un parser LR(0) Limitaciones de los lenguajes LR(0) Construcción de un parser engine SLR(1) Limitaciones de los lenguajes SLR(1) Oscar Bonilla 15 Universidad Galileo

25 Ejemplo Strings de uno o más paréntesis izquierdos seguidos del mismo número de paréntesis derechos <S> <X> $ <X> ( <X> ) <X> ( ) Strings de cero o más paréntesis izquierdos seguidos del mismo número de paréntesis derechos <S> <X> $ <X> ( <X> ) <X> ε Oscar Bonilla 17 Universidad Galileo

26 Ejemplo La gramática <S> <X> $ <X> ( <X> ) <X> ε Items <S> <X> $ <S> <X> $ <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> ( <X> ) <X> Oscar Bonilla 19 Universidad Galileo

27 Construcción de la tabla de parseo ACTION Goto State ( ) $ X s0 shift to s2/reduce (3) reduce (3) reduce(3) goto s1 s1 error error accept s2 shift to s2/reduce (3) reduce (3) reduce(3) goto s3 s3 error shift to s4 error s4 reduce(2) reduce(2) reduce(2) s0 <S> <X> $ <X> ( <X> ) <X> Conflicto shift/reduce X ( s1 <S> <X> $ s2 <X> ( <X> ) <X> ( <X> ) <X> Conflicto shift/reduce ( X s3 <X> ( <X> ) ) s4 <X> ( <X> ) Oscar Bonilla 52 Universidad Galileo

28 Construcción de la tabla de parseo ACTION Goto State ( ) $ X s0 shift to s2/reduce (3) reduce (3) reduce(3) goto s1 s1 error error accept s2 shift to s2/reduce (3) reduce (3) reduce(3) goto s3 s3 error shift to s4 error s4 reduce(2) reduce(2) reduce(2) Cómo nos libramos de estos conflictos shift/reduce? Oscar Bonilla 53 Universidad Galileo

29 Limitaciones de las gramáticas LR(0) Muchos conflictos shift/reduce Razón Un ítem X α en el estado actual identifica una reducción Pero no selecciona cuándo reducir Por lo tanto, tenemos que efectuar la reducción en todos los símbolos de entrada Oscar Bonilla 54 Universidad Galileo

30 Resumen Resumen de la construcción de un parser LR(0) Limitaciones de los lenguajes LR(0) Construcción de un parser engine SLR(1) Limitaciones de los lenguajes SLR(1) Oscar Bonilla 55 Universidad Galileo

31 Idea detrás de las gramáticas SLR(1) Muchos conflictos shift/reduce en LR(0) un item X α en el estado actual identifica una reducción Pero no selecciona cuándo reducir Por lo tanto, tenemos que efectuar la reducción en todos los símbolos de entrada Hacemos la reducción sólo cuando el símbolo de entrada en efecto sigue a la reducción Tenemos que calcular los terminales que pueden seguir un símbolo no-terminal Oscar Bonilla 56 Universidad Galileo

32 siguientes() Para cada no-terminal A, siguientes(a) es el conjunto de terminales que pueden venir después de A Si hay una secuencia de derivaciones de la forma S α A $ entonces siguientes(a) va a incluir $ Oscar Bonilla 57 Universidad Galileo

33 Ejemplo de siguientes() Encontrar siguientes(<x>) ), $ gramática <S> <X> $ <X> ( <X> ) <X> ε Oscar Bonilla 62 Universidad Galileo

34 Pregunta: Encuentren siguientes() Qué es siguientes(<s>) $ gramática <S> <X> $ <X> ( <X> ) <X> ε Oscar Bonilla 64 Universidad Galileo

35 Construyendo un parser engine SLR(1) Agregamos la producción especial S S $ Calcular el conjunto siguientes para todos los no-terminales Encontrar los ítems Crear el AFD Usando las funciones closure y goto Construir la tabla de parseo Usando el AFD y la información del conjunto siguientes SLR Parser Engine Oscar Bonilla 65 Universidad Galileo

36 Creando las tablas de parseo Para cada estado La transición a otro estado usando un símbolo terminal es un shift a ese estado (shift to sn) La transición a otro estado usando un símbolo noterminal es un goto a ese estado (goto sn) Si hay un ítem A α en el estado, para todos los terminales c siguientes(a) hacer una reducción con la producción (reduce k) Oscar Bonilla 66 Universidad Galileo

37 Construyendo la tabla de parseo ACTION Goto State ( ) $ X s0 shift to s2 reduce (3) reduce (3) goto s1 s1 error error accept s2 shift to s2 reduce (3) reduce(3) goto s3 s3 error shift to s4 error s4 error reduce (2) reduce (2) s0 <S> <X> $ <X> ( <X> ) <X> X siguientes(<x>) = { ), $ } siguientes(<s>) = { $ } ( s1 <S> <X> $ s2 <X> ( <X> ) <X> ( <X> ) <X> s3 <X> ( <X> ) Oscar Bonilla 97 Universidad Galileo ( X ) s4 <X> ( <X> )

38 Tablas de parseo LR(0) y SLR(1) SLR(1) ACTION Goto State ( ) $ X s0 shift to s2 reduce (3) reduce(3) goto s1 s1 error error accept s2 shift to s2 reduce (3) reduce(3) goto s3 s3 error shift to s4 error s4 error reduce (2) reduce (2) LR(0) ACTION Goto State ( ) $ X s0 shift to s2/reduce (3) reduce (3) reduce(3) goto s1 s1 error error accept s2 shift to s2/reduce (3) reduce (3) reduce(3) goto s3 s3 error shift to s4 error s4 reduce(2) reduce(2) reduce(2) Oscar Bonilla 98 Universidad Galileo

39 Parser Engine SLR(1) Usamos los ítems Sólo vemos la posición actual Sin conocimiento del input futuro En la reducción Vemos el siguiente input (usando el conjunto siguientes) De acá el 1 de SLR(1) Oscar Bonilla 99 Universidad Galileo

40 Resumen Resumen de la construcción de un parser LR(0) Limitaciones de los lenguajes LR(0) Construcción de un parser engine SLR(1) Limitaciones de los lenguajes SLR(1) Oscar Bonilla 100 Universidad Galileo

41 Gramáticas SLR(1) vs LR(1) SLR(1) mantiene la posición actual además de alguna información acerca del siguiente caracter de entrada LR(1) mantiene información completa acerca del siguiente caracter de entrada Oscar Bonilla 101 Universidad Galileo

42 » Preguntas? Continuará

Analizadores sintácticos LR(0) y SLR

Analizadores sintácticos LR(0) y SLR Teoría de Lenguajes Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Clase de Hoy Anteriores: Parsing descendente (LL(1), ELL) Recursivos e iterativos Generan árbol de derivación desde

Más detalles

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

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Análizador Sintáctico de abajo hacia arriba Es un proceso de Reducción,

Más detalles

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

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Parsing LR: Ejemplo: E E + T E T T T * id T id S n : shift al estado

Más detalles

LR(1) - LALR. Alejandro Grinberg. 30 de Octubre de (agradecimiento a Juan Manuel Pérez) Alejandro Grinberg () LR(1) - LALR 1 / 16

LR(1) - LALR. Alejandro Grinberg. 30 de Octubre de (agradecimiento a Juan Manuel Pérez) Alejandro Grinberg () LR(1) - LALR 1 / 16 LR(1) - LALR Alejandro Grinberg 30 de Octubre de 2014 (agradecimiento a Juan Manuel Pérez) Alejandro Grinberg () LR(1) - LALR 1 / 16 Repaso Parsing bottom-up Parsing shift-reduce Prefijos viables Autómata

Más detalles

Compiladores: Parsing ascendente

Compiladores: Parsing ascendente Compiladores: Parsing ascendente Francisco J Ballesteros LSUB, URJC Page 1 of 64 Parsing ascendente Normalmente utilizaremos parsers descendentes para problemas pequeños cuando podemos escribir uno predictivo

Más detalles

Tema 5. Análisis sintáctico ascendente

Tema 5. Análisis sintáctico ascendente Tema 5 Análisis sintáctico Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Introducción 5.2 Análisis sintáctico por desplazamiento y reducción 5.3 El autómata reconocedor de prefijos viables

Más detalles

Analizador Sintáctico Ascendente

Analizador Sintáctico Ascendente Analizador Sintáctico Ascente Un Analizador Sintáctico (A. St.) Ascente construye el árbol desde las hojas hacia la raíz. Funciona por reducción-desplazamiento, lo cual quiere decir que, siempre que puede,

Más detalles

22, 23 y 24 Análisis sintáctico V Compiladores - Profr. Edgardo Adrián Franco Martínez

22, 23 y 24 Análisis sintáctico V Compiladores - Profr. Edgardo Adrián Franco Martínez 2 Contenido Análisis Sintáctico Ascendente Métodos Ascendentes Método Ascendente SLR Pasos para el método SLR Ejemplo SLR Resumen Ejercicios Compiladores (Análisis Sintáctico VI - Análisis Ascendente -

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores LALR Cris%na Tirnauca Domingo Gómez Pérez DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: CreaIve Commons BY NC SA 3.0 El Analizador

Más detalles

Proyecto Intermedio Algoritmo de Earley

Proyecto Intermedio Algoritmo de Earley Fundamentos de Computación Proyecto Intermedio: Algoritmo de Earley Profesor: Dr. José Torres Jiménez Alumnos: Edna Gutiérrez Gasca Aureny Magaly Uc Miam Jorge Rodríguez Núñez Proyecto Intermedio Algoritmo

Más detalles

Agenda. Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo

Agenda. Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo Agenda Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo Analizador sintáctico Bottom-Up 1-1 1-2 Introducción Los sistemas de implementación

Más detalles

ANÁLISIS SINTÁCTICO II LR1

ANÁLISIS SINTÁCTICO II LR1 Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizador SLR y LR canónico Cris%na Tirnauca Domingo Gómez Pérez DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: CreaKve Commons BY NC SA 3.0

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 4

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 4 UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 4 Análisis Sintáctico Ascendente Javier Vélez Reyes jvelez@lsi.uned.es Objetivos

Más detalles

ANÁLISIS SINTÁCTICO II SLR

ANÁLISIS SINTÁCTICO II SLR Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Lenguajes y Compiladores Análisis Sintáctico Parte II

Lenguajes y Compiladores Análisis Sintáctico Parte II Universidad Nacional San Luis Gonzaga Facultad de Ing. De Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte II 1 Análisis Ascendente El análisis ascendente es conocido como análisis por desplazamiento

Más detalles

Tema: Análisis Sintáctico LR

Tema: Análisis Sintáctico LR Compiladores. Guía 4 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Sintáctico LR Contenido En esta guía se abordarán los conceptos pertenecientes al componente de

Más detalles

Análisis sintáctico 1

Análisis sintáctico 1 Análisis sintáctico 1 Análisis sintáctico 1. Introducción 2. Análisis descendente (top-down) 2.1 Análisis con backtracking 2.2 Análisis predictivo 2.2.1 Método recursivo 2.2.2 Método iterativo 3. Análisis

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores sintácticos descendentes: LL(1) Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 Analizadores sintácticos

Más detalles

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. de Ingeniería de Sistemas e Informática TEORIA DE COMPILADORES ANALISIS SINTACTICO

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. de Ingeniería de Sistemas e Informática TEORIA DE COMPILADORES ANALISIS SINTACTICO ANALISIS SINTACTICO Análisis Sintáctico Descendente Análisis Sintáctico Ascendente EOF y α S (axioma inicial). 2. : la cadena de entrada no es válida. 3. : consiste en aplicar

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores sintác0cos descendentes: LL(1) Cris%na Tirnauca DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: Crea0ve Commons BY NC SA 3.0 Analizadores

Más detalles

Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo

Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo Tema 4: Análisis sintáctico ascendente Procesamiento de enguajes Dept. de enguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de enguajes Tema 4: Análisis sintáctico ascendente 1 / 21

Más detalles

El análisis descendente LL(1) 6, 7 y 13 de abril de 2011

El análisis descendente LL(1) 6, 7 y 13 de abril de 2011 6, 7 y 13 de abril de 2011 Analizadores sintácticos (repaso) Los analizadores descendentes: Corresponden a un autómata de pila determinista. Construyen un árbol sintáctico de la raíz hacia las hojas (del

Más detalles

ANÁLISIS SINTÁCTICO II LALR

ANÁLISIS SINTÁCTICO II LALR Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

4 o Ingeniería Informática

4 o Ingeniería Informática Esquema del tema 1. Introducción 2. Análisis LR(0) 3. Análisis SLR 4. Análisis LR(1) 4 o Ingeniería Informática II26 Procesadores de lenguaje Análisis ascendente 5. Uso de gramáticas ambiguas 6. Tratamiento

Más detalles

ANÁLISIS SINTÁCTICO I ANALIZADORES SINTÁCTICOS

ANÁLISIS SINTÁCTICO I ANALIZADORES SINTÁCTICOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Tema: Análisis Sintáctico LR

Tema: Análisis Sintáctico LR Compiladores. Guía 7 1 Tema: Análisis Sintáctico LR Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En esta guía se abordarán los conceptos pertenecientes al componente de

Más detalles

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion UNIDAD IV Analisis Sintactico 4.1 Introduccion Sintaxis significa estructura del orden de las palabras en una frase. La tarea del analisis sintactico es revisar si los símbolos aparecen en el orden correcto

Más detalles

Gramáticas tipo 0 o Estructura de frase En este tipo de gramáticas no hay restricción en su producciones y tienen la forma siguiente.

Gramáticas tipo 0 o Estructura de frase En este tipo de gramáticas no hay restricción en su producciones y tienen la forma siguiente. Gramáticas Libres de Contexto 1. Gramáticas. Como vimos en el capítulo anterior una gramática es un conjunto finito de reglas que describen todas las secuencias de símbolos que pertenecen a un lenguaje.

Más detalles

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013 Compiladores Análisis Sintáctico Ascendente Adrian Ulises Mercado Martínez Facultad de Ingeniería, UNAM 5 de septiembre de 2013 Adrian Ulises Mercado Martínez (FI,UNAM) Compiladores 5/07/2013 1 / 34 Índice

Más detalles

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1 Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte I 1 Introducción El analizador sintáctico recibe una secuencia de tokens y decide si la secuencia está correcta o no.

Más detalles

Generación de analizador sintáctico ascendente Yacc (bison,... ) Generación de analizador sintáctico ascendente v1.1 c 2005 José Fortes Gálvez p.

Generación de analizador sintáctico ascendente Yacc (bison,... ) Generación de analizador sintáctico ascendente v1.1 c 2005 José Fortes Gálvez p. Generación de analizador sintáctico ascendente Yacc (bison, ) Generación de analizador sintáctico ascendente v11 c 2005 José Fortes Gálvez p1 Reconocedor de avance-reducción Planteamiento clásico, originado

Más detalles

17 Análisis sintáctico II Compiladores - Profr. Edgardo Adrián Franco Martínez. Gramáticas limpias y bien formadas

17 Análisis sintáctico II Compiladores - Profr. Edgardo Adrián Franco Martínez. Gramáticas limpias y bien formadas 2 Contenido Gramáticas limpias y bien formadas Algoritmo para detectar símbolos muertos Algoritmo para detectar símbolos inaccesibles Gramáticas ambiguas Clasificación de métodos de análisis sintáctico

Más detalles

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

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en

Más detalles

Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos

Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos 4.1 Introducción En este capítulo se presentan los algoritmos usados por el Generador de Analizadores Sintácticos SLR. Se tratará

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Gramáticas Regulares Expresiones Regulares Gramáticas - Intuitivamente una gramática es un conjunto de reglas para formar correctamente las frases de un lenguaje - Por ejemplo,

Más detalles

Análisis sintáctico Analizadores ascendentes

Análisis sintáctico Analizadores ascendentes Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Analizadores ascendentes Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.

Más detalles

18 Análisis sintáctico III Compiladores - Profr. Edgardo Adrián Franco Martínez. Clasificación de métodos de análisis sintáctico Análisis descendente

18 Análisis sintáctico III Compiladores - Profr. Edgardo Adrián Franco Martínez. Clasificación de métodos de análisis sintáctico Análisis descendente 2 Contenido Clasificación de métodos de análisis sintáctico Análisis descendente Análisis descendente recursivo Análisis descendente predictivo Métodos deterministas Problemas del análisis descendente

Más detalles

B b A. Notar que las gramáticas utilizadas son sin recursión por la izquierda:

B b A. Notar que las gramáticas utilizadas son sin recursión por la izquierda: Definición: Una Gramática Libre de Contexto (GLC) está en Forma Normal de Greibach (FNG) si todas las producciones son de la forma: A ab 1 B 2.. B k Donde A es un símbolo no Terminal, a es un símbolo Terminal

Más detalles

YACC (Yet Another Compiler Compiler) LALR(1) Parser Generator

YACC (Yet Another Compiler Compiler) LALR(1) Parser Generator YACC (Yet Another Compiler Compiler) LALR(1) Parser Generator 1 INDICE 1. Introducción 2. Especificaciones 3. Ambigüedad y conflictos 4. Tratamiento de errores 5. Uso con el LEX 6. Algunos consejos prácticos

Más detalles

ANÁLISIS SINTÁCTICO PREDICTIVO NO RECURSIVO

ANÁLISIS SINTÁCTICO PREDICTIVO NO RECURSIVO 1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN ANÁLISIS SINTÁCTICO PREDICTIVO NO RECURSIVO Elaborado el Martes 12 de Octubre de 2004 I.- INTRODUCCIÓN Es posible realizar

Más detalles

La Ambigüedad en el Parsing

La Ambigüedad en el Parsing La en el Parsing Definición y Ejemplos Universidad de Cantabria Outline El Problema 1 El Problema 2 3 El Problema En nuestra busqueda por encontrar la estructura exploraremos como elegir una derivación

Más detalles

Más sobre gramáticas independientes de contexto o incontextuales

Más sobre gramáticas independientes de contexto o incontextuales Más sobre gramáticas independientes de contexto o incontextuales Elvira Mayordomo, Gregorio de Miguel Universidad de Zaragoza 19 de noviembre de 2012 Contenido de este tema Árboles de derivación Gramáticas

Más detalles

Introducción a la Lógica y la Computación

Introducción a la Lógica y la Computación Introducción a la Lógica y la Computación Parte III: Lenguajes y Autómatas Clase del 12 de Noviembre de 2014 Parte III: Lenguajes y Autómatas Introducción a la Lógica y la Computación 1/11 Lenguajes Regulares

Más detalles

Tipos de análisis deterministas. Análisis descendente. Tipos de análisis deterministas. Análisis ascendente. Análisis descendente

Tipos de análisis deterministas. Análisis descendente. Tipos de análisis deterministas. Análisis ascendente. Análisis descendente César Ignacio García Osorio Área de Lenguajes y Siste mas Informáticos Universidad de Burgos Tipos de análisis deterministas. nálisis descendente. La idea es generar una forma sentencial a partir del axioma,

Más detalles

Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis

Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali

Más detalles

Procesadores de lenguaje Tema Análisis sintáctico (Parte II)

Procesadores de lenguaje Tema Análisis sintáctico (Parte II) Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte II) Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Análisis sintáctico ascendente

Más detalles

ANÁLISIS SINTÁCTICO I ANÁLISIS SINTÁCTICO DESCENDENTE LL(1)

ANÁLISIS SINTÁCTICO I ANÁLISIS SINTÁCTICO DESCENDENTE LL(1) Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Procesadores de Lenguajes. Análisis sintáctico. Analizadores descendentes

Procesadores de Lenguajes. Análisis sintáctico. Analizadores descendentes Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Analizadores descendentes Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Compiladores e Intérpretes Análisis Sintáctico

Compiladores e Intérpretes Análisis Sintáctico 1 Compiladores e Intérpretes Análisis Sintáctico Sebastian Gottifredi 2017 Organizacion Contexto Motivación Reglas de Sintaxis Construyendo Analizadores Sintácticos Ambigüedad Analizadores Sintácticos

Más detalles

16 Análisis sintáctico I

16 Análisis sintáctico I 2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura

Más detalles

1. Acciones en Yacc. %{ #include <stdio.h> yyerror (char *s) { fprintf (stderr, %s\n, s) ; } %} %% : S \n {printf ( Correcto\n );} ; : ( S ) S

1. Acciones en Yacc. %{ #include <stdio.h> yyerror (char *s) { fprintf (stderr, %s\n, s) ; } %} %% : S \n {printf ( Correcto\n );} ; : ( S ) S El generador de analizadores sintácticos Yacc III Teoría de autómatas y lenguajes formales Alma María Pisabarro Marrón (alma@infor.uva.es) Universidad de Valladolid 1. Acciones en Yacc Las acciones en

Más detalles

Las Gramáticas LL. Gramáticas con Parsing Eficiente. Universidad de Cantabria

Las Gramáticas LL. Gramáticas con Parsing Eficiente. Universidad de Cantabria Las (k) Las Gramáticas con Parsing Eficiente Universidad de Cantabria Outline Las (k) 1 Las (k) 2 3 Las (k) Formalizalización del Concepto LL Definición Una gramática libre de contexto G = (V, Σ, Q 0,

Más detalles

Temas. Objetivo. Analizador Sintáctico: funciones y tipos. Analizador Sintáctico Descendente. Analizador Sintáctico Ascendente

Temas. Objetivo. Analizador Sintáctico: funciones y tipos. Analizador Sintáctico Descendente. Analizador Sintáctico Ascendente 10:44 1 10:44 2 Temas Analizador Sintáctico: funciones y tipos Analizador Sintáctico Descendente Analizador Sintáctico Ascendente Generador de Analizadores Sintácticos - Yacc Objetivo Que el estudiante

Más detalles

Tres versiones de Pal. Sesión 19. Una máquina para aceptar Pal El lenguaje: Tabla de transición para Pal. Más de un siguiente estado.

Tres versiones de Pal. Sesión 19. Una máquina para aceptar Pal El lenguaje: Tabla de transición para Pal. Más de un siguiente estado. Tres versiones de Pal Sesión 19 Autómata de pila determinístico Pal marca = {xcx r x {0, 1} * } 0110c0110 Pal par = {xx r x {0, 1} * } 00111100 Pal = {x x = x r {0, 1} * } 00111100 001101100 Una máquina

Más detalles

Unidad IV Análisis Sintáctico. M.C. Juan Carlos Olivares Rojas

Unidad IV Análisis Sintáctico. M.C. Juan Carlos Olivares Rojas Unidad IV Análisis Sintáctico M.C. Juan Carlos Olivares Rojas Agenda 4.1 Introducción a las Gramáticas libres de contexto y árboles de derivación. 4.2 Diagramas de sintaxis. 4.3 Precedencia de operadores.

Más detalles

Teoría de Autómatas y Lenguajes Formales Práctica 4

Teoría de Autómatas y Lenguajes Formales Práctica 4 Departamento de Tecnologías de la Información Área de Ciencias de la Computación e Inteligencia Artificial Teoría de Autómatas y Lenguajes Formales Práctica 4 1.- OBJETIVOS El objetivo de esta práctica

Más detalles

Procesadores de lenguaje

Procesadores de lenguaje Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte II) Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Análisis sintáctico ascendente

Más detalles

Eliminación de Símbolos Inútiles

Eliminación de Símbolos Inútiles Eliminación de Símbolos Inútiles Veremos cómo eliminar los símbolos inútiles de una gramática. Lo haremos con dos algoritmos, que son definidos en la demostración de los siguientes lemas. Lema 1 Dada una

Más detalles

Compiladores e Intérpretes Análisis Léxico

Compiladores e Intérpretes Análisis Léxico 1 Compiladores e Intérpretes Análisis Léxico Sebastian Gottifredi 2017 Organizacion Esquema General de Análisis Léxico Tokens Especificando Tokens Expresiones Regulares Reconociendo Tokens Autómatas Finitos

Más detalles

Tres versiones de Pal. Tema 19. Una máquina para aceptar Pal. Tabla de transición para Pal. Transición. Más de un siguiente estado

Tres versiones de Pal. Tema 19. Una máquina para aceptar Pal. Tabla de transición para Pal. Transición. Más de un siguiente estado Tres versiones de Pal Tema Autómata de pila determinístico Dr. Luis A. Pineda ISBN: --- Pal marca = {xcx r x {, } * } c Pal par = {xx r x {, } * } Pal = {x x = x r {, } * } Dr. Luis A. Pineda, IIMAS, UNAM,.

Más detalles

Las Etapas de la Compilación

Las Etapas de la Compilación Las de la Compilación El en la Compilación Universidad de Cantabria Outline 1 El Problema 2 Las y el Qué pasos son necesarios dar para hallar la estructura de un programa? En qué pasos podemos dividirlos

Más detalles

INAOE. Gramáticas Libres de Contexto. Definición formal de CFGs. Derivaciones usando. Derivaciones. izquierda y. derecha.

INAOE. Gramáticas Libres de Contexto. Definición formal de CFGs. Derivaciones usando. Derivaciones. izquierda y. derecha. s s INAOE en s (INAOE) 1 / 67 Contenido s en s 1 s 2 3 4 5 6 7 8 en s (INAOE) 2 / 67 s s s Hemos visto que muchos lenguajes no son regulares. Por lo que necesitamos una clase más grande de lenguages Las

Más detalles

Análisis sintáctico Analizadores descendentes

Análisis sintáctico Analizadores descendentes Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Analizadores descendentes Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Análisis Sintáctico. Esquema general de un analizador sintáctico. Texto. Árbol de Análisis Sintáctico o FALLO. + Analizador Sintáctico Gramática

Análisis Sintáctico. Esquema general de un analizador sintáctico. Texto. Árbol de Análisis Sintáctico o FALLO. + Analizador Sintáctico Gramática Análisis Sintáctico Análisis Sintáctico INPUT Texto + Analizador Sintáctico Gramática OUTPUT Árbol de Análisis Sintáctico o FALLO Esquema general de un analizador sintáctico Métodos de análisis sintáctico

Más detalles

Gramáticas libres de contexto

Gramáticas libres de contexto Gramáticas libres de contexto Conceptos básicos El siguientes es un ejemplo de una gramática libre de contexto, a la cual llamaremos G1. A 0A1 A B B # Una gramática consiste de una colección de reglas

Más detalles

ANÁLISIS SINTÁCTICO. Comprobar que la secuencia de componentes léxicos cumple las reglas de la gramática Generar el árbol sintáctico

ANÁLISIS SINTÁCTICO. Comprobar que la secuencia de componentes léxicos cumple las reglas de la gramática Generar el árbol sintáctico Cadena de tokens Árbol Sintáctico ANÁLISIS SINTÁCTICO 1 Análisis Sintáctico 2 Funciones Comprobar que la secuencia de componentes léxicos cumple las reglas de la gramática Generar el árbol sintáctico Ventajas

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. UNIVERIDAD NACIONAL DE EDUCACIÓN A DITANCIA Escuela Técnica uperior de Ingeniería Informática Procesadores de Lenguajes Tema 3 Parte II Análisis intáctico Descendente Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Generalidades sobre lenguajes.

Generalidades sobre lenguajes. no DSIC - UPV July 3, 2011 (DSIC - UPV) July 3, 2011 1 / 21 Definiciones: no Alfabeto Σ = {a, b, c} o Γ = {0, 1} palabra, cadena o frase Σ: x = aaba, y = 0011. Cadena vacía: λ. Longitud de una palabra:

Más detalles

Lección 5: Análisis Sintáctico LR

Lección 5: Análisis Sintáctico LR Lección 5: Análisis Sintáctico LR 1) Introducción 2) Un ejemplo intuitivo 3) Definiciones 4) Análisis SLR 5) Construcción de un analizador SLR 6) Sobre conflictos 7) Análisis LR Canónico 8) Análisis LALR

Más detalles

Procesadores de lenguaje

Procesadores de lenguaje Recursivad: ejercicios Obtener las gramáticas que producen: Procesadores de lenguaje jercicios de análisis sintáctico Departamento de Ciencias de la Computación Universad de Alcalá 1. Una o más aes con

Más detalles

ANÁLISIS SINTÁCTICO I CONJUNTOS PRIMERO Y SIGUIENTE

ANÁLISIS SINTÁCTICO I CONJUNTOS PRIMERO Y SIGUIENTE Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Uso de la herramienta YACC

Uso de la herramienta YACC 1 Compiladores / Guía VI / Ciclo 02-2016 Centro de Investigación y Transferencia de Tecnología Uso de la herramienta YACC Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En

Más detalles

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO Autómatas de pila y lenguajes independientes del contexto -1- AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO AUTÓMATAS DE PILA - Son autómatas finitos con una memoria en forma de pila. - Símbolos

Más detalles

Autómata de Pila (AP, PDA) Sesión 18

Autómata de Pila (AP, PDA) Sesión 18 Sesión 8 Autómata de Pila (Pushdown Automata) Autómata de Pila (AP, PDA) Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack). L = {xx r x

Más detalles

CUP. Diseño de compiladores. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP 20/04/2014

CUP. Diseño de compiladores. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP 20/04/2014 CUP Diseño de compiladores CUP Cup es un generador de analizadores sintácticos LALR Recibe de entrada un archivo con la estructura de la gramática y su salida es un parser escrito en Java Manual oficial:

Más detalles

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN G r a m á t i c a s UNIVERSIDAD DE SONORA DEPARTAMENTO DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN Dra. María de Guadalupe Cota Ortiz Lenguaje

Más detalles

Lenguajes y Compiladores Análisis Léxico

Lenguajes y Compiladores Análisis Léxico Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Léxico 1 Análisis léxico La tarea del análisis léxico es reconocer símbolos dentro de la cadena de caracteres que es el programa fuente.

Más detalles

UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO

UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROCESADORES DE LENGUAJES INGENIERÍA INFORMÁTICA PRIMER CURSO DE SEGUNDO CICLO SEGUNDO CUATRIMESTRE NOTACIÓN

Más detalles

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad 300CIG007 Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad Pontificia niversidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Reducibilidad

Más detalles

Tema 6: Compiladores e intérpretes. Teoría de autómatas y lenguajes formales I

Tema 6: Compiladores e intérpretes. Teoría de autómatas y lenguajes formales I Tema 6: Compiladores e intérpretes Teoría de autómatas y lenguajes formales I Bibliografía Sudkamp, T. A. Languages and machines: an introduction to the theory of computer science. Addison Wesley. 1997.

Más detalles

Conceptos básicos sobre gramáticas

Conceptos básicos sobre gramáticas Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos

Más detalles

Autómata de Pila (AP, PDA) Tema 18

Autómata de Pila (AP, PDA) Tema 18 Tema Autómata de Pila (Pushdown Automata Autómata de Pila (AP, PDA Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack. Dr. Luis A. Pineda

Más detalles

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

Agenda. BNF y EBNF Brevemente, lo necesario para especificar el lenguaje sobre el que vamos a trabajar. Agenda BNF y EBNF Brevemente, lo necesario para especificar el lenguaje sobre el que vamos a trabajar. JLEX y JCUP Breve descripción del las herramientas para generar el parser o analizador sintáctico.

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 2) 2007 1 Derivaciones El proceso de búsqueda de un árbol sintáctico para una cadena se llama análisis sintáctico. El lenguaje generado

Más detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Gramáticas ensibles al Contexto y enguajes ensibles al Contexto ctubre 2009 Gramáticas Formales Una gramática formal es una cuadrupla G = (N,, P, ) N = conjunto finito de símbolos

Más detalles

TRADUCTORES E INTERPRETADORES

TRADUCTORES E INTERPRETADORES TRADUCTORES E INTERPRETADORES Clase 11: Analizadores Sintácticos Descendentes Agenda Analizadores Recursivos Descendentes. Análisis Predictivo. Analizadores LL(1). Analizadores LL(k) y LL(*). Analizadores

Más detalles

GRAMÁTICAS LIBRES DE CONTEXTO

GRAMÁTICAS LIBRES DE CONTEXTO GRAMÁTICAS LIBRES DE CONTEXTO Definición Una gramática libre de contexto (GLC) es una descripción estructural precisa de un lenguaje. Formalmente es una tupla G=, donde Vn es el conjunto

Más detalles

GENERACIÓN DE RECONOCEDORES LALR EN DIVERSOS LENGUAJES DE PROGRAMACIÓN

GENERACIÓN DE RECONOCEDORES LALR EN DIVERSOS LENGUAJES DE PROGRAMACIÓN UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación GENERACIÓN DE RECONOCEDORES LALR EN DIVERSOS LENGUAJES DE PROGRAMACIÓN Por: CARLOS ALBERTO PÉREZ DÍAZ Tutor: PROF. ASCÁNDER SUÁREZ Proyecto de Grado

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3. UNIVRSIDAD NACIONAL D DUCACIÓN A DISTANCIA scuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 3 Parte I Análisis Sintáctico Javier Vélez Reyes jvelez@lsi.uned.es Objetivos

Más detalles

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55 Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2

Más detalles

Complejidad Computacional

Complejidad Computacional Análisis y Complejidad de Algoritmos Complejidad Computacional Arturo Díaz Pérez Lenguajes formales Gramáticas formales Jerarquía de Chomski Teoría de la complejidad Una desigualdad computacional Computabilidad

Más detalles

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña Máquinas Secuenciales, Autómatas y Lenguajes Tema 4: Expresiones Regulares Luis Peña Sumario Tema 4: Expresiones Regulares. 1. Concepto de Expresión Regular 2. Teoremas de Equivalencia Curso 2012-2013

Más detalles

Tema 3. Introducción al análisis sintáctico

Tema 3. Introducción al análisis sintáctico Tema 3 Introducción al análisis sintáctico Bibliografía: Aho, A.V., Sethi, R., Ullman, J.D. (1990), Compiladores: principios, técnicas y herramientas, Tema 4, pág.: 163-186. Louden, K.C. (1997), Compiler

Más detalles