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

Documentos relacionados
La Ambigüedad en el Parsing

Hacia las Gramáticas Propias

Procesadores de Lenguaje

Expresiones Regulares y Derivadas Formales

Hacia las Gramáticas Propias II

Las Gramáticas Formales

La Representación de las Gramáticas

Procesadores de Lenguaje

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

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

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

Procesadores de Lenguaje

Generalidades sobre lenguajes.

Equivalencia Entre PDA y CFL

Descripción de los Lenguajes Aceptados por Autómatas

Parsing Top Down (Descendente)

Traductores Push Down

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

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Analizadores sintácticos LR(0) y SLR

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

Expresiones Regulares y Gramáticas Regulares

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

La Forma Normal de Chomsky

Lenguajes Incontextuales

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

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

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.

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Analizador Sintáctico Ascendente

Máquinas de Turing. Definición 2

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

Proyecto Intermedio Algoritmo de Earley

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación:

1. Cadenas EJERCICIO 1

Jerarquía de Chomsky. 1. Clasificación de gramáticas. 2. Clasificación de lenguajes. 3. Gramáticas regulares. 5. Gramáticas dependientes del contexto

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

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

Expresiones Regulares

TRADUCTORES E INTERPRETADORES

Gramáticas independientes del contexto TEORÍA DE LA COMPUTACIÓN LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

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

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

ANÁLISIS SINTÁCTICO PREDICTIVO NO RECURSIVO

Ciencias de la Computación I

El Autómata con Pila

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

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

Traductores Push Down para Gramáticas LL

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 5 - Simplificación de gramáticas incontextuales

Eliminación de Símbolos Inútiles

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

Tema 5: Autómatas a pila. Teoría de autómatas y lenguajes formales I

Teoría de Lenguajes - Primer Parcial

Desarrollo de lenguajes y Compiladores [MII-771] Capítulo 1: Lenguajes y Gramáticas Formales

Grupos libres. Presentaciones.

Se pueden agrupar las reglas que tienen la misma parte izquierda:

Ejercicios de teoría de la medida

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

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

Teoría de Lenguajes // 1er. cuatrimestre de er. Parcial

Autómatas de Pila y Lenguajes Incontextuales

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

Computabilidad y Lenguajes Formales: Autómatas de Pila

Introducción a los códigos compresores

Apuntes de compiladores

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

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.

Máquinas de estado finito y expresiones regulares

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.

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

GRAMATICAS LIBRES DEL CONTEXTO

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

Problemas de Espacios Vectoriales

Tarea Nº 2 Introducción a la Informática Lema del Bombeo y Lenguajes de Contexto Libre

El Autómata con Pila: Transiciones

Teoría de Autómatas y Lenguajes Formales.

LENGUAJES Y GRAMÁTICAS

INGENIERÍA EN INFORMÁTICA MODELOS ABSTRACTOS DE COMPUTO I SOLUCIONES

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

Máquinas de Turing, recordatorio y problemas

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

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

Nivel del ejercicio : ( ) básico, ( ) medio, ( ) avanzado.

Víctor J. Díaz Madrigal y Fernando Enríquez de Salamanca Ros. 2.1 Límites de los lenguajes regulares Teorema de Myhill-Nerode Lema del bombeo

Complejidad Computacional

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

Autómatas Finitos Deterministicos (DFA) Introducción a la Complejidad Computacional FFHA, Universidad Nacional de San Juan

Autómatas Finitos No-Deterministicos (NFA)

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

Análisis Sintáctico Descendente

Unidad 3. Probabilidad. Javier Santibáñez (IIMAS, UNAM) Inferencia Estadística Semestre / 22

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003

Tema 2 Gramáticas y Lenguajes Libres de Contexto

Teoría de Lenguajes. Clase Teórica 1 Gramáticas y Jerarquía de Chomsky. Primer cuartimestre 2016

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Transcripción:

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, P) se dice de clase LL(k) si verifica la siguiente propiedad: Dadas dos derivaciones, donde ω Σ, A V, α, β, γ (V Σ), del tipo siguiente: Q 0 lm ωaγ lm ωαγ ωx Σ, Q 0 lm ωaγ lm ωβγ ωy Σ, Si FIRST k (x) = FIRST k (y), entonces α = β.

Idea Las (k) La idea es que si hacemos dos derivaciones a izquierda desde una variable de nuestra gramática, y si llegamos a dos formas terminales en las que los primeros k símbolos a partir de A de una forma terminal coinciden, entonces es que hemos tenido que hacer la misma derivación desde A.

Las (k) Observación Propiedades: Son gramáticas no ambiguas. Existe una tabla que permite generar árboles sintácticos para cualquier palabra con un número de operaciones proporcional a la longitud.

Ejemplos Las (k) Ejemplo Un ejemplo de gramática LL(1) es la dada mediante: Q 0 aaq 0 b, A a bq 0 A

Ejemplos Las (k) Ejemplo La gramática {Q 0 λ aba, A Q 0 aa b} es una gramática LL(2)

Ejemplos Las (k) Hay gramáticas que no son LL(k) para ningún k. {Q 0 Acd Ac, A aa b}.

Teorema Las (k) Teorema Una gramática G = (V, Σ, Q 0, P) es LL(k) si y solamente si se verifica la siguiente propiedad: Dadas dos producciones A β y A γ tales que A es accesible y se tiene Q 0 lm ωaα, con ω Σ y α (V Σ), entonces FIRST k (βα) FIRST k (γα) =.

Idea Las (k) Como nos dicta la intuición, en las gramáticas LL(k) tendremos que calcular FIRST k (α), donde α es una forma no terminal.

Las (k) Propiedades Definición Sea L 1, L 2 Σ, dos lenguajes definimos: { xy k y ω = xy, o L 1 k L 2 = {ω : x 1, y 2 w = FIRST k (xy). }

Resultado Las (k) Teorema Dada una gramática libre de contexto G y una forma sentencial αβ se tiene que FIRST k (αβ) = FIRST k (α) k FIRST k (β).

Algoritmo Las (k) Definir F i (a) = a para todo símbolo del alfabeto y para todo 0 i k. Definir F 0 (A) = {x Σ k : A xα} para todo símbolo del alfabeto y para todo 0 i k. Para 1 i k y mientras F i 1 (A) F i (A) para alguna variable A hacer Para cada variable A hacer F i (A) = {x Σ k : A Y 1... Y n y x F i 1 (Y 1 ) k k F i 1 (Y n )}. fin hacer fin hacer

Las (k) Antes de Comenzar.. Suponemos enumeradas nuestras producciones, asignándole un número natural a cada una de ellas. Además, introduciremos un nuevo símbolo que hará las funciones de fondo de la pila.

Objetivo Las (k) Construiremos una tabla M : (V Σ { }) (Σ {λ}) P(P), donde P(P) es el conjunto de todos los subconjuntos del conjunto de las producciones.

Algoritmo Las (k) La tabla será construida a partir de la gramática dada y cuyas filas están indicadas por los elementos de V Σ { } y cuyas columnas están indicadas por los elementos de Σ {λ}.

Algoritmo Las (k) Dada una producción (i) A α Para cada a FIRST (α), a λ, añadir i a la casilla M(A, a). Si λ FIRST (α) añadir i en todas las casillas M(A, b) para cada b FOLLOW (A). M(a, a) =pop para cada a Σ. M(, λ) =accept. En todos los demás casos escribir M(X, i) =error.

Resultado Las (k) Teorema Dada una gramática libre de contexto G, y dada T (G) la tabla construida por el algoritmo anterior, entonces G es LL(1) si y solamente si todos las casillas de la tabla T (G) contienen exactamente una producción o una de las palabras seleccionadas (pop, accept, error).

Ejemplo Las (k) Como ejemplo, consideremos la gramática G = (V, Σ, Q 0, P), donde las producciones son: P := {Q 0 aaq 0 b, A a bq 0 A}. Enumeramos estas producciones del modo siguiente: (1) Q 0 aaq 0 (2) Q 0 b (3) A a (4) A bq 0 A

Ejemplo Las (k) a b λ Q 0 1 2 error A 3 4 error a pop error error b error pop error error error accept

Las (k) Observaciones Finales Las gramáticas LL(1) son la forma más natural de realizar el parsing. Algunos lenguajes de programación están definidos por una gramática LL(1). Encontrar una gramática que sea LL(1) es un problema difícil, pero hay producciones que no pueden estar en gramáticas LL(1). Es factible testar si una gramática es LL(1). Todavia queda por ver como recuperar el árbol de derivación.