simplificación de gramáticas independientes de contexto

10

Click here to load reader

Upload: eduardo-tello

Post on 06-Jul-2015

956 views

Category:

Technology


2 download

DESCRIPTION

Un algoritmo sobre la simplificación de gramáticas independientes de contexto

TRANSCRIPT

Page 1: Simplificación de gramáticas independientes de contexto

Simplificación de Gramáticas

Independientes de Contexto

Page 2: Simplificación de gramáticas independientes de contexto

• Escaso control sobre las producciones.

• Árboles tupidos

• S → abcdefgS |

abcdefg

• Árboles profundos e inútiles

S → A

A → B

B → C

C → D

D → a | A

Page 3: Simplificación de gramáticas independientes de contexto

Eliminación de terminaes nulas

1. Inicializar N’ con todos los no terminales A para los que A → w, es una producción de G, con w €

’.

2. Inicializar P’ con todas las producciones A → w para las cuales A € N’ y w € ’.

3. Repetir hasta que no se puedan añadir mas no terminales

Añadir a N’ todos los no terminales A para los cuales a → w, para algún w € (N’ U ’) que sea una producción de P y añadirla a P’.

Page 4: Simplificación de gramáticas independientes de contexto

• El bucle del paso 3 es finito.

• Todo no terminal que no aparezca en N’, no formara una subcadena de cualquier cadena final

• Se permiten producciones a la derecha.

• Toma el como una cadena de un terminal, llamadas producciones épsilon.

Page 5: Simplificación de gramáticas independientes de contexto

Ejemplos

Tenemos la siguiente GIC, G:

= { a,b,d}

N = { A, B, C, D, S}

S = S

P=

S → Aa | B | D

A → aA | bA | B

B → b

C → abd

1.- Inicializamos N’ con los no terminales (N) que produzcan (→) un terminal (w) que pertenece a

N’ = { B, C}

2.- Inicializamos P’ con las producciones (P) de N’

P’ =

B → b

C → abd

Page 6: Simplificación de gramáticas independientes de contexto

G:

= { a,b,d}

N = { A, B, C, D, S}

S = S

P=

S → Aa | B | D

A → aA | bA | B

B → b

C → abd

3.- Ahora agregamos a N’ los N que contengan un terminal y/o un miembro de N’

N’ = {B, S, C, A}

Y generamos sus producciones

P’ =

S → Aa|B

A → aA|bA|B

B → b

C → abd

Page 7: Simplificación de gramáticas independientes de contexto

G:

= { a,b,d}

N = { A, B, C, D, S}

S = S

P=

S → Aa | B | D

A → aA | bA | B

B → b

C → abd

El resultado final podríamos escribirlo como G’:

‘ = { a,b,d}

N’ = { A, B, C, S}

S’ = S

P’=

S → Aa | B

A → aA | bA | B

B → b

C → abd

Si nos damos cuenta, el no terminal D se elimino.

Page 8: Simplificación de gramáticas independientes de contexto

Simplifique la GIC G

una GIC cuyas

producciones son:

S → aB

A → bcCCC | dA

B → e

C → fA

D → Dgh

Ejemplos

La respuesta debe

de ser:

S → aB

A → bcCCC | dA

B → e

C → fA

Page 9: Simplificación de gramáticas independientes de contexto

Simplifique la GIC G una GIC cuyas producciones son:

S → aAb | cEB | CE

A → dBE | eeC

B → ff | D

C → gFB | ae

D → h

La respuesta debe

de ser:

S → aAb

A → eeC

B → ff | D

C → ae

D → h

Page 10: Simplificación de gramáticas independientes de contexto

Simplifique la GIC G una GIC cuyas producciones son:

S → a | aA | B | C

A → aB |

B → Aa

C → bCD

D → ccc

La respuesta debe

de ser:

S → a | aA | B

A → aB |

B → Aa

D → ccc