Tomado de Sudkamp: Languages and Machines Cap. 5.

Slides:



Advertisements
Presentaciones similares
DIFIGEBA DIBUJOS CON FIGURAS GEOMÉTRICAS BÁSICAS
Advertisements

Compiladores e intérpretes Análisis Sintáctico III
Gramáticas, lenguajes y reconocedores
Gramáticas Libres de Contexto
Gramáticas.
Lenguajes y Expresiones Regulares
ESTRUCTURA DE DATOS Unidad 03 PILAS.
Tema 2.- Gramáticas independientes de contexto.
Tema 1.- Lenguajes. Gramáticas
INFORME DE MANTENIMIENTOS DICIEMBRE ABRIL 2009 Bogotá, 19 de diciembre de 2008 Reunión No. 67 del CNO-Gas CONSEJO NACIONAL DE OPERACIÓN DE GAS.
¿cúantos subconjuntos (sucesos compuestos?) pueden formarse?
Dependencias Funcionales
El análisis sintáctico
Lenguajes Regulares Curso de Compiladores Manuel E. Bermúdez, Ph.D.
TEOREMA DE PITÁGORAS TEOREMA DE EUCLIDES.
Tema 1.- Lenguajes. Gramáticas
Ф El Número Áureo Un Viaje entre MATEMÁTICAS, NATURALEZA Y ARTE 1.
Introducción a la Teoría de Lenguajes Preparado por Manuel E. Bermúdez, Ph.D. Profesor Asociado University of Florida Curso de Compiladores.
Algoritmos para calcular el Conjunto Primero y el Conjunto Siguiente
ARQUITECTURA DE COMPUTADORESTABLA DE SABERESVersión Final IDENTIFICAR LOS COMPONENTES HARDWARE DE UN COMPUTADOR DESCRIBIR LOS DIFERENTES TIPOS DE MEMORIA.
02_AG 19_cpx, 37_cpx 45_cpx A1 01_AE 18_cpx 11_cpx 49_cpx 06_cpx G D B F2 F1 C J H 11_cpx.CM CM_2190SA_ _cpx.CM CM_0186ND_
Lenguajes Libres de Contexto
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
Teoría de lenguajes y compiladores
Una introducción a los algoritmos del Parsing. Pregunta inicial… ¿Cómo se puede determinar si un código escrito en un lenguaje de programación tiene sintaxis.
Tema 2 Autómatas finitos 1. Autómata finito determinista
Sistemas Digitales Electrónica Digital I Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica Función Booleana Encuentra los.
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
MÁQUINAS DE TURING Teoría del Autómata.
COMPUTABILIDAD Y COMPLEJIDAD 1. Conceptos básicos (revisión). 2. Gramáticas independientes de contexto. 3. Propiedades de los lenguajes independientes.
Tomado de Sudkamp: Languages and Machines Cap. 6.
Gramáticas Otoño2012. Importancia de las gramáticas 2 Son una herramienta muy poderosa para describir y analizar lenguajes.
CONSTRUCCIONES GEOMÉTRICAS
CLASE 201 IGUALDAD Y SEMEJANZA DE TRIÁNGULOS. EJERCICIOS.
Reglas Básicas del Álgebra de Boole
CLASE 34 –3 x x x x y y 2,1 y y 5x5x 5x5x 7 7 x x 2 2 y y 5 5 = 7 x 0 0 ( x  0) 4 x x 3 +2 x x 2 –1 P( x ) =
QUELETRA_5 F5 9letras 9letras 9letras Escritura no secuencial, con imagen. plato clavo sopla calvo liebre césped hombro jardín lengua mantel niebla plantar.
LENGUAJES GRÁMATICAS Y AUTÓMATAS
Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales.
LOGICA Y MATEMATICA COMPUTACIONAL Profesora Responsable: Esp. Prof. Liliana Caputo.
@ Angel Prieto BenitoMatemáticas 4º ESO E. AC.1 U. D. 8 * 4º ESO E. AC. SEMEJANZA.
2. Después, mediante el teorema de los ejes paralelos, obtenemos el momento de inercia de cada componente de la manivela… I 1 = I G + md 2 donde:
MÁQUINAS DE TURING Teoría del Autómata. Definición Definimos una máquina de Turing como una 7-tupla M = (Q, , , s, b, F,  ), donde Q es un conjunto.
U.D. 9 * 2º ESO FIGURAS SEMEJANTES
LOGICA Y MATEMATICA COMPUTACIONAL
Dependencias Funcionales
Demostrando Productos Notables
Teoría del valor y de los precios
Computación Valeria Herskovic –
SEMEJANZA U. D. 7 * 4º ESO E. Angel Prieto Benito
I. E. Manuel González Prada 2015
CLASE 194 TRIÁNGULOS SEMEJANTES.
El problema de los objetivos
Antidiferenciación A la operación inversa de la diferenciación se le llama antidiferenciación. El procedimiento que implica a la antidiferenciación,
Teoría de la circulación
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
GRAMATICA LIBRE DE CONTEXTO LENGUAJE LIBRE DE CONTEXTO Marcela Hernandez.
Química U.2 Unión entre átomos y propiedades de las sustancias
Tema 2 Autómatas finitos 1. Autómata finito determinista

“a / an” and “some” are called… Indefinite Articles.
.- Es fácil observar que cuantos más puntos dibujamos sobre una recta, más segmentos diferentes se determinan. ____|_______|_____ Dos puntos (A y B)
Escuela Nacional de Antropología e Historia (ENAH)
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
¿Cómo nos comunicamos?.
Metas: 1) I can tell someone what to do and follow commands
Tema 8. Estructuras de decisión. Clases 1 y 2.
Transcripción de la presentación:

Tomado de Sudkamp: Languages and Machines Cap. 5. FORMAS NORMALES Tomado de Sudkamp: Languages and Machines Cap. 5.

Gramática regular Forma normal de Chomsky A aB A a A  A BC A a S  S no aparece al lado derecho de ninguna producción Forma normal de Greibach A aA1A2A3…. An A a S 

Evite que el símbolo de arranque sea recursivo. Eliminación de reglas Lambda Eliminación de las reglas en cadena (chain rules). Símbolos inútiles

Costrucción del conjunto de variables anulables Algoritmo 5 .1. 2 Costrucción del conjunto de variables anulables Input: Context-free Grammar G=(V,,P,S) NULL=:{A | A } Repeat 2.1 PREV:=NULL 2.2 for each variable AV do if there is an A rule A w and wPREV* then NULL=NULL{A} until NULL=PREV

EJEMPLO 5.1.2 G: V = {S, A, B, C} Σ = {a,b} P: S → ACA A → aAa | B | C B → Bb | b C → cC |  Iter. NULL PREV {C} 2. {A,C} {C} 3. {S, A, C} {A,C} 4. {S, A, C} {S,A,C}

Teorema 5.1.5 Dada G =(V,,P,S) una cfg, existe un algoritmo que construye una gramática cfg GL=(VL,,PL,SL) tal que : L(G)=L(GL) SL no es una variable recursiva. A →  si y solo sí L(G) y A=SL.

DEMOSTRACIÓN Construcción de GL Construcción de PL VL es V con un nuevo símbolo de arranque si es necesario. Construcción de PL Si L(G) entonces SL →  Sea A→ w una regla de P. Si w puede escribirse de la forma w1A1w2A2….wkAkwk+1 donde A1…A2, Ak son símbolos anulables entonces A→ w1w2….wkwk+1 Es una regla de PL. A →  si y solo si L(G) y A=SL.

Ejemplo 5.1.4 G: V = {S, A, B, C} Σ = {a,b} P: S → ACA A → aAa | B | C B → Bb | b C → cC |  Símbolos anulables: S,A,C GL: V = {S, A, B, C} Σ = {a,b} P: S → ACA|CA|AC|AA|A|C| A → aAa |aa | B | C B → Bb | b C → cC | c G: S => ACA =>aAaCA => aBaCA =>abaCA =>abaA =>abaC =>aba G: S => A =>aAa =>aBa => aba

Reglas en cadena Es una regla de la forma A → B. CHAIN(A) comprende además de A, todas las símbolos auxiliares que se derivan de A. Es decir CHAIN(A)={B | A=>*B}{A}. CHAIN(A) se construye recursivamente a partir de A.

Ejemplo 5.2.1 CHAIN RULES G: V = {S, A, B, C} Σ = {a,b} Chain(S)= {S,A,C,B} Chain(A)= {A,C,B} Chain(B)= {B} Chain(C)= {C} G: V = {S, A, B, C} Σ = {a,b} P: S → ACA|CA|AC|AA|AC|A|C| A → aAa | B | C B → Bb | b C → cC | c S → ACA| CA| AC| AA| AC|  S → aAa| Bb| b| cC| c A → aAa| Bb| b| cC| c B→ Bb| b C → cC| c

Símbolos Inútiles Hay dos clases de símbolos inútiles: Aquellos que no derivan cadenas de símbolos terminales (estériles). Aquellos que no son alcanzables a partir de S (inalcanzables). El teorema 5.3.3 garantiza que para toda cfg existe una equivalente sin símbolos estériles. El teorema 5.3.6 garantiza que para toda cfg existe una equivalente sin símbolos inútiles.

Construcción del conjunto de variables no estériles. TERM:={A | existe A → w con w* }. repeat PREV:=TERM for cada variable AV do if existe A → w con w(PREV)* then TERM:=TERM{A} until PREV:=TERM

EJEMPLO 5.3.1 S → AC| BS | B A → aA | aF B → CF | b C → cC | D D → aD | BD | C E → aA | BSA F → bB | b Iter. TERM PREV {B,F} 2. {B,F,A,S} {B,F} 3. {B, F, A, S, E} {B,F,A,S} 4. {B, F, A, S, E} {B, F, A, S, E} GT : S → BS | B A → aA | aF B → b E → aA | BSA F → bB | b

Construcción del conjunto de variables ALCANZABLES. REACH:={S} PREV:= repeat NEW:=REACH-PREV PREV:=REACH for cada variable ANEW do for cada regla A → w agrege a REACH todas las variables de w until REACH:=PREV

EJEMPLO 5.3.2 S → AC| BS | B A → aA | aF B → CF | b C → cC | D D → aD | BD | C E → aA | BSA F → bB | b Iter. REACH PREV NEW {S} {S} 2. {S,B} {S} {B} 3. {S, B } {S, B}  GU : S → BS | B B → b GT : S → BS | B A → aA | aF B → b E → aA | BSA F → bB | b

FN de CHOMSKY Se parte de una gramática que: El símbolo de arranque no es recursivo. No contiene variables anulables salvo S. No contiene reglas en cadena. No tiene símbolos inútiles. A → B’T T → AW W →A’D A → bAaD A → B’AA’D B’ → b A’ →a

Ejemplo 5.4.2 (AE) Σ = {b, +, (, )} A → A + T | b | (A) P: 1. S → A AE: V = {S, A, T} Σ = {b, +, (, )} P: 1. S → A 2. A → T 3. A → A + T 4. T → b 5. T → (A) S → A + T | b | (A) A → A + T | b | (A) T → b | (A) R → ) L → ( P → + Z →AR Y →PT T → b | AY | LZ S→AY| b | LZ

Eliminar la recursividad a izquierda directa. Se busca eliminar las reglas de tipo A → Aw como A → A + T. (bvc)*a(bvc)* ba* (bvc)(avb)* A → A B |BA | a B → b | c A → A a | b A → A a | Ab| b | c A → bZ | cZ Z → aZ | bZ | a | b A → BAZ | aZ | BA Z → BZ | B B → b | c A → bZ | b Z → aZ | a

Generalizando… A → Au1 | Au2 |…| Aun A → v1 | v2 |…| vk A → v1 | v2 |…| vk | v1Z | v2Z |…| vk Z Z → u1Z | u2Z|…| unZ

Conversión a fn de Greibach Forma normal de Greibach A → aA1A2A3…. An A → a S →  S → AB |  A → AB | CB | a B → AB | b C → AC | c G S → AB |  A → aR1 | CBR1 | CB | a B → AB | b C → AC | c R1 →BR1 | B S → AB |  A → aR1 | CBR1 | CB | a B → aR1B | CBR1B | CBB | aB | b C → AC | c R1 →BR1 | B LEMA 5.6.2 La regla A →uBv se puede reemplazar por A→uk1v|…|uknv donde B→k1|…| kn son todas las B reglas.

continuamos S → AB |  A → aR1 | CBR1 | CB | a B → aR1B | CBR1B | CBB | aB | b C → AC | c R1 →BR1 | B S → AB |  A → aR1 | CBR1 | CB | a B → aR1B | CBR1B | CBB | b C → aR1C | CBR1C | CBC | aC | c R1 →BR1 | B C → aR1C | aC | c | aR1CR2 | aCR2 | cR2 R2 → BR1CR2 | BCR2 |BR1C|BC