Gramáticas independientes del contexto. Tema 3: Lenguajes independientes del contexto. Derivaciones. Árbol de derivación

Tema 3: Lenguajes independientes del contexto Gramáticas independientes del contexto Gramáticas independientes de contexto (GIC) • Conceptos básic

0 downloads 102 Views 260KB Size

Recommend Stories


Propiedades de los Lenguajes Libres de Contexto
Forma Normal de Chomsky Eliminando Producciones Propiedades de los Lenguajes Libres de Contexto Eliminando Producciones Unitarias Forma Normal de C

CANDIDATURAS INDEPENDIENTES GOBERNADOR CANDIDATURAS INDEPENDIENTES DIPUTADOS
REPORTE DE REGISTRO DE SOLICITUDES DE INTENCION DE CANDIDATOS INDEPENDIENTES 25 DE ENERO DE 2016. CANDIDATURAS INDEPENDIENTES GOBERNADOR No. Fecha N

Contexto del transporte
TECNOLOGÍA EN LOGÍSTICA DEL TRANSPORTE Contexto del transporte Actividad de Aprendizaje 6.1 SERVICIO NACIONAL DE APRENDIZAJE - SENA 2014 CONTEXTO

Story Transcript

Tema 3: Lenguajes independientes del contexto

Gramáticas independientes del contexto

Gramáticas independientes de contexto (GIC)



Conceptos básicos Ambigüedad Ejemplos de GICs

Elementos:

C om ponentes

C om ponentes form ales

C ategorias

N

conju nto de no term inales

Fu ente de entrada

Σ

alfabeto de term inales



Elementos distinguidos: S∈N símbolo inicial



Definición formal: G = (N, Σ, S, P)

Autómatas con pila (AP) Definición de autómata con pila Determinismo y no determinismo. Ejemplos. Formas normales •

Simplificación Forma normal de Greibach Equivalencia entre APs y GICs



con Α → β ∈P , Α∈N , β∈(N ∪ Σ)*

Paso de derivación: δ1, δ2, σ1, σ2, β ∈ (N ∪ Σ)* Α∈N δ1 ⇒ δ2 si y solo si δ1 = σ1Ασ2, δ2 = σ1βσ2 y Α → β ∈ P * w} Lenguaje generado: L(G) = { w∈Σ*: S ⇒

Propiedades y aplicaciones 1

Tema 3: Leng. Indep. del Contexto

Derivaciones •

Paso de derivación a la izquierda: δ1 ⇒ δ2 si y solo si δ1 = wΑα, δ2 = wβα y Α → β ∈ P ∈Σ * con α, β ∈ (N ∪ Σ )* , Α∈N, w∈



Derivación a la izquierda: * w con cada paso de derivación a la izquierda S ⇒



Ejemplo: Dada la G.I.C:

Árbol de derivación •

S → ASB | ε A → aAb | ε B → bBa | ba

Árbol de derivación (o de análisis) de G: Es un árbol etiquetado y ordenado tal que: - Todo nodo está etiquetado con un símbolo de N ∪ Σ ∪ {ε} - La raíz es el símbolo inicial. - Los nodos internos están etiquetados con símbolos no terminales - Si un nodo está etiquetado con A y sus k hijos están etiquetados X1 X2 … Xk (leídos de izquierda a derecha), entonces A → X1X2…Xk es una regla de la gramática. - Si un nodo está etiquetado con ε entonces es el único hijo de un nodo. Si todas las hojas son símbolos terminales ó ε entonces el árbol es completo y la frontera es una palabra de L(G).

Derivación a la izquierda de la palabra aabbba:

S ⇒ ASB ⇒ aAbSB ⇒ aaAbbSB ⇒ aabbSB ⇒ aabbB ⇒ aabbba Tema 3: Leng. Indep. del Contexto

2

3

Tema 3: Leng. Indep. del Contexto

4

Derivaciones y árboles (I) •

Ejemplo:

Derivaciones y árboles (II)

La derivación

Ejemplo:



Dos derivaciones a la izquierda: S ⇒ ScS ⇒ SbScS ⇒ abScS ⇒ abacS ⇒ abaca S ⇒ SbS ⇒ abS ⇒ abScS ⇒ abacS ⇒ abaca



Árboles de derivación:

S ⇒ ASB ⇒ aAbSB ⇒ aaAbbSB ⇒ aabbSB ⇒ aabbB ⇒ aabbba tiene como árbol de derivación S A a a

A A

S b

ε

B b

a

S → ASB | ε A → aAb | ε B → bBa | ba

S → SbS | ScS | a



b

S

ε Es un árbol completo con frontera: aabbba

b

a

Tema 3: Leng. Indep. del Contexto

5

1.

a

a

a

S b

S S

c

a

S a 6

Gramática G que genera el lenguaje L(G) = { w.c.wR : w ∈ {a,b}* } G = (N, Σ, S, P) con N = {S}, Σ = {a,b,c} y P formado por las siguientes reglas de producción:



Equivalentemente, una gramática G es ambigua si existe x∈L(G) con al menos dos derivaciones a la izquierda.



Un lenguaje L es inherentemente ambiguo si todas las gramáticas para dicho lenguaje son ambiguas.

S → aSa | bSb | c 2.

Gramática G que genera el lenguaje L(G) = { w.wR : w ∈ {a,b}* } G = (N, Σ, S, P) con N = {S}, Σ = {a,b} y P formado por las siguientes reglas de producción:

El lenguaje siguiente es inherentemente ambiguo: L = { aibjck | i=j ó j=k }

Tema 3: Leng. Indep. del Contexto

S

Ejemplos de GICs (I)

Una gramática G es ambigua si existe x∈L(G) con al menos dos árboles de derivación diferentes. Ej: La gramática S → SbS | ScS | a es ambigua

Ej:

S

S

Tema 3: Leng. Indep. del Contexto

Ambigüedad •

S c

S

S → aSa | bSb | ε

7

Tema 3: Leng. Indep. del Contexto

8

Ejemplos de GICs (II) 3.

Ejemplos de GICs (III)

Gramática G que genera el lenguaje L(G) = { anbn : n≥0 }

5.

G = (N, Σ, S, P) con N = {S}, Σ = {a,b} y P formado por las siguientes reglas de producción:

Primero observamos que k e i son independientes entre ellos. Usamos un nuevo no-terminal B que genere la subpalabra bk (k≥1)

S → aSb | ε 4.

Gramática G que genera el lenguaje L(G) = { aibkci : i≥0, k≥1 }

G = (N, Σ, S, P) con N = {S,B}, Σ = {a,b,c} y P formado por las siguientes reglas de producción:

Gramática G que genera el lenguaje L(G) = { anb2n : n≥0 }

S → aSc | Β B → bB | b

G = (N, Σ, S, P) con N = {S}, Σ = {a,b} y P formado por las siguientes reglas de producción: S → aSbb | ε

6.

Tema 3: Leng. Indep. del Contexto

9

¿ Gramática G que genera el lenguaje L(G) = { aibkci : i≥1, k≥0 } ?

Tema 3: Leng. Indep. del Contexto

Autómatas con pila (AP) - Elementos:

C o m p on en tes físicos

Autómatas con pila (AP) - Definición formal:

C o m p on en tes lógicos

U nidad de P roceso

Q

conjunto de estados

F uente d e entrad a

Σ

alfabeto de entrad a

P ila

Γ

alfabeto de pila

M = (Q, Σ, Γ, δ, q0, F) con (q, w, α) ∈ Q × Σ* × Γ*

q0 ∈Q: estado inicial F ⊆ Q: conjunto de estados finales pila (representada mediante Г*), la cima de la pila vacía (ε) se denota por ⊥

-Movimiento:

- Ciclo-máquina: Acciones:



estado actual



avance en la entrada



símbolo de entrada



cambio de estado



cima de la pila

Tema 3: Leng. Indep. del Contexto

δ : Q × Σ × (Γ ∪ {⊥}) → ℘(Q × Γ*)

-Configuración:

- Elementos distinguidos para la inicialización y aceptación:

Consultas:

10

- estado actual, palabra a leer, estado pila -

(p∈Q, s∈Σ, w∈Σ*, A∈Γ, α∈Γ*)

(p, s.w, Aα) ├── (q, w, βα)

si y solo si

(q, β) ∈ δ(p, s, A)

(p, s.w, ε) ├── (q, w, β)

si y solo si

(q, β) ∈ δ(p, s, ⊥)

- Lenguaje aceptado:

• modificación de la pila: desapilar un elemento ó desapilar un elemento y apilar uno o más

L(M) = { w∈Σ*: ∃ p∈F (q0, w, ε) ├── * (p, ε, ε) } 11

Tema 3: Leng. Indep. del Contexto

12

Ejemplo de AP

Ejemplo de AP

M = (Q, Σ, Γ, δ, q0, F) con Q = {q0 , qf } F = {qf } Γ = { A } Σ = {a,b} y δ como sigue:

M = (Q, Σ, Γ, δ, q0, F) con Q = {q0 , qf } F = {qf } Γ = { A } Σ = {a,b} y δ como sigue:

δ (q0,a,⊥) = {(q0, A), (qf, ε) }

δ (qf, a, ⊥ ) = ∅

δ (q0,a,⊥) = {(q0, A), (qf, ε) }

δ (qf, a, ⊥ ) = ∅

δ (q0, a, A) = { (q0, AA) , (qf, A) }

δ (qf, a, A) = { (qf, ε) }

δ (q0, a, A) = { (q0, AA) , (qf, A) }

δ (qf, a, A) = { (qf, ε) }

δ (q0, b, ⊥) = { (q0, A) }

δ (qf, b, ⊥ ) = ∅

δ (q0, b, ⊥) = { (q0, A) }

δ (qf, b, ⊥ ) = ∅

δ (q0, b, A) = { (q0, AA) }

δ (qf, b, A) = { (qf, ε) }

δ (q0, b, A) = { (q0, AA) }

δ (qf, b, A) = { (qf, ε) }

Cómputos posibles de M para la palabra aba:

Cómputos posibles de M para la palabra baa:

(q0, aba, ⊥) |-- (q0, ba, A) |-- (q0, a, AA) |-- (q0, ε, AAA)

(q0, baa, ⊥) |-- (q0, aa, A) |-- (q0, a, AA) |-- (q0, ε, AAA)

|-- (qf, ε, AA) |-- (qf, ba, ⊥) |-- ∅

|-- (qf, ε, AA) |-- (qf, a, A)

por tanto aba ∉ L(M)

Tema 3: Leng. Indep. del Contexto

por tanto baa ∈ L(M) 13

Determinismo y no determinismo

M = (Q, Σ, Γ, δ, q0, F) con Q = {q0 , qf } F = {qf } Γ = { A,B } Σ = {a,b,c} y δ como sigue:

- Diseñar un autómata con pila que reconozca el siguiente lenguaje:

δ (q0, a, ⊥ ) = {(q0, A)}

: w ∈ {a,b}* }

En general, a diferencia de lo que pasa entre L(AFD) y L(AFND), los lenguajes reconocidos por autómatas con pila deterministas (APD) no coinciden con los lenguajes reconocidos por autómatas con pila NO deterministas (AP): L(APD) ≠ L(AP) Tema 3: Leng. Indep. del Contexto

14

Diseñar un autómata con pila (determinista) que reconozca L = { w.c.wR : w ∈ {a,b}* }

L = { w.c.wR : w ∈ {a,b}* }

L={

Tema 3: Leng. Indep. del Contexto

Ejemplo de AP determinista

- Diseñar un autómata con pila (determinista) que reconozca el siguiente lenguaje:

w.wR

|-- (qf, ε, ε)

δ (q0, a, Β ) = {(q0, AB)}

δ (q0, b, B) = {(q0, ΒΒ)}

δ (q0, a, A) = {(q0, AA)}

δ (q0, b, A) = {(q0, BA)}

δ (q0, c, ⊥) = {(qf, ε)} δ (qf, a, A) = { (qf, ε) } 15

δ (q0, b, ⊥) = {(q0, B)}

Tema 3: Leng. Indep. del Contexto

δ (q0, c, A) = {(qf, A)}

δ (q0, c, B) = {(qf, B)}

δ (qf, b, B) = { (qf, ε) } 16

Ejemplo de AP no determinista

Formas Normales. Simplificación

Diseñar un autómata con pila que reconozca L = { w.wR : w ∈ {a,b}* }

Simplificación de GIC’s:

M = (Q, Σ, Γ, δ, q0, F) con Q = {q0 , qf } F= {q0, qf } Γ= { A,B } Σ= {a,b} y δ como sigue: δ (q0, a, ⊥ ) = {(q0, A)}

δ (q0, b, ⊥) = {(q0, B)}

δ (q0, a, Β ) = {(q0, AB)}

δ (q0, b, B) = {(q0, ΒΒ), (qf, ε)}

δ (q0, a, A) = {(q0, AA), (qf, ε)}

δ (q0, b, A) = {(q0, BA)}





δ (qf, a, A) = {(qf, ε)}

δ (qf, b, B) = {(qf, ε)}

Tema 3: Leng. Indep. del Contexto

17

Consiste en eliminar: símbolos inútiles, producciones nulas y producciones unitarias de una gramática G, con el objetivo de obtener una gramática G’, equivalente a G y tal que cada paso de derivación α ⇒ β (en G’) verifica | α | ≤ | β |

Tema 3: Leng. Indep. del Contexto

Símbolo inútil 



Definiciones:

*

Símbolo accesible X

si

S





Símbolo fecundo X

si

X





Símbolo inútil = no accesible ó no fecundo

Ejemplo:

Eliminar símbolos inútiles (I)

(para símbolos no terminales: X∈N)



S → AB | A A → Aa | ε B → bC C → cB D→a

*

entrada: G = (N, ∑, P, S) gramática independiente de contexto salida: G2 = (N2, ∑, P2, S) equivalente a G sin símbolos inútiles

αXβ w

18

proceso:

(con w∈Σ*)

primer paso: -- Objetivo: eliminar de G los símbolos no fecundos -- Método: buscar inductivamente los símbolos fecundos, N1 • Si A → w ∈ P con w∈Σ* entonces A∈N1

¿No fecundos? B , C ¿No accesibles? D

• Si A → α ∈ P con α ∈(N1 ∪Σ)*, entonces A∈N1 -- Resultado: G1 = (N1, ∑, P1, S) con P1 = { A → α ∈ P : α∈(Σ ∪ N1)*}

Tema 3: Leng. Indep. del Contexto

19

Tema 3: Leng. Indep. del Contexto

20

Eliminar símbolos inútiles (II)

Eliminar producciones nulas (I) entrada: G = (N, Σ, P, S) independiente de contexto con S no recursivo salida: G2 = (N, Σ, P2, S) equivalente a G y tal que la única producción nula (A → ε) ∈ P2, si existe alguna, es con el símbolo inicial de la gramática: S → ε

segundo paso: -- Objetivo: eliminar de G1=(N1, ∑, P1, S) los símbolos no accesibles -- Método: buscar inductivamente los símbolos accesibles, N2 • S ∈ N2 • Si A∈N2, A → αBβ ∈P1 y B∈N1 entonces B∈N2

proceso: primer paso: -- Objetivo: construcción del conjunto de símbolos anulables

-- Resultado: G2 = (N2, ∑, P2, S) con P2 = { A → α ∈P1 : A∈N2 }

ANUL = {A ∈ N: A

*

⇒ε

}

-- Método: aplicar la definición inductiva de símbolo anulable • Si A → ε ∈ P entonces A ∈ ANUL • Si A → α ∈ P con α ∈ ANUL*, entonces A ∈ ANUL

IMPORTANTE: El orden de los pasos no es conmutativo. Tema 3: Leng. Indep. del Contexto

21

Eliminar producciones nulas (II)

22

Eliminar producciones unitarias (I)

segundo paso: -- Eliminar las producciones nulas y modificar P

entrada: G = (N, Σ, P, S) independiente de contexto sin producciones nulas salida: G1 = (N, Σ, P1, S) equivalente a G sin producciones unitarias (A → Β)

P1 := P - {A → ε : A ∈ N}; P2:= ∅; for regla in P1 loop if regla = A → X1X2…Xn then P2 := P2 ∪ { A → Y1 Y2…Yn | Yi es Xi si Xi ∉ANUL Yi es Xi ó es ε si Xi ∈ANUL Yi no es ε para todo i }; end if; end loop; if S ∈ ANUL then P2 := P2 ∪ { S → ε } end if; Tema 3: Leng. Indep. del Contexto

Tema 3: Leng. Indep. del Contexto

proceso: primer paso: -- Objetivo: construir para cada A ∈ N el conjunto UA = {B ∈ N : A -- Método: aplicar la definición inductiva:

*



B}

• A ∈ UA • Si B ∈ UA y B → C ∈ P entonces C ∈ UA 23

Tema 3: Leng. Indep. del Contexto

24

Forma Normal

Eliminar producciones unitarias (II) segundo paso: -- Construir P1 eliminando las producciones unitarias

Transformación de una GIC a forma normal:

P1 := Ø; for A in N loop for B in UA loop for regla in P loop if regla = B → α and α ∉ N then P1 := P1 ∪ {A → α }; end if; end loop; end loop; end loop; Tema 3: Leng. Indep. del Contexto

25



Estudiaremos procedimientos para: eliminar recursión a izquierdas, reemplazamientos y otros ....



con el objetivo de transformar cualquier G.I.C. G en G’, tal que G’ es equivalente a G y G’ en forma normal (de Greibach)



y obtener un AP equivalente a partir de G’ (en F.N. Greibach)

Tema 3: Leng. Indep. del Contexto

26

Recursividad

Recursividad

Producción o regla recursiva: A → αAβ * Recursividad no inmediata A ⇒ αAβ Producción o regla recursiva a la izquierda: A → Aβ * Recursividad a la izquierda A ⇒ Aβ

Las cambiamos por A → β1 A’ |...| βm A’|β1|...|βm A’ → α1 A’|...|αn A’|α1|...|αn donde A’ es un nuevo no terminal.

Eliminación de la recursividad inmediata a la izquierda de un símbolo no terminal A

La nueva gramática es equivalente y sin recursión inmediata a la izquierda para A.

Sean todas las reglas con A en el lado izquierdo (A-reglas): A → Aα1 |...| Aαn| β1|...|βm

A

donde las reglas A → βi no son recursivas a la izquierda.

Tema 3: Leng. Indep. del Contexto

27

Tema 3: Leng. Indep. del Contexto

*



(β1∪...∪βm )(α1 ∪ ... ∪ αn)∗

28

Otras transformaciones

Otras transformaciones

Reemplazamiento

Introducción de nuevos símbolos no terminales

Sea A → αBβ ∈ P una regla tal que A, B ∈N

Sea A → αβγ ∈ P una regla tal que A∈N, α,β,γ ∈ (N∪ Σ) ∗ y Z un nuevo no terminal

y sean B → β1 |...| βn todas las B-reglas ,

si eliminamos la regla A → αβγ y añadimos las reglas

si eliminamos la regla A → αBβ y añadimos las reglas

Z→β A → αZγ

A → αβ1β|...|αβnβ la nueva gramática es equivalente.

Tema 3: Leng. Indep. del Contexto

la nueva gramática es equivalente.

29

Forma normal de Greibach

30

Forma normal de Greibach (I)

Definición: Una gramática independiente del contexto G = (N, Σ, P, S) está en Forma Normal de Greibach (FNG) si todas las reglas de producción (de P) son de la forma:

entrada: G = (N, Σ, P, S) independiente de contexto simplificada salida: G3 = (N3, Σ, P3, S) en FNG equivalente a G preparación: Numeración de los no terminales y de las reglas. Elegimos una ordenación de N: A1 < A2 ]>

4560 1000€ Intel Pentium 800Mhz 256 Maxtor Diamond 30.5Gb 32x .....

Tema 3: Leng. Indep. del Contexto

43

Tema 3: Leng. Indep. del Contexto

44

GICs y Gramáticas DTD 1)

Formato DTD: Formato GIC:

2)

Procesador → Fabricante Modelo Velocidad

Formato DTD: Formato GIC: Disco → Discoduro | Cd |Dvd

3)

Formato DTD: Formato GIC:

Tema 3: Leng. Indep. del Contexto

PC → Modelo Precio Procesador Ram Discos Discos → Disco | Disco Discos 45

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.