1 / 21

FORMAS NORMALES

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.

jasper
Download Presentation

FORMAS NORMALES

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 

  3. 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

  4. 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

  5. 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}

  6. 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) • SLno es una variable recursiva. • A → si y solo sí L(G) y A=SL.

  7. DEMOSTRACIÓN Construcción de GL 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 dondeA1…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.

  8. 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

  9. 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 deA.

  10. Ejemplo 5.2.1 CHAIN RULES 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

  11. 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.

  12. 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 existeA → w con w(PREV)* then TERM:=TERM{A} untilPREV:=TERM

  13. 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} S → BS | B A → aA | aF B → b E → aA | BSA F → bB | b GT :

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

  15. 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}  S → BS | B B → b GU : S → BS | B A → aA | aF B → b E → aA | BSA F → bB | b GT :

  16. 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

  17. Ejemplo 5.4.2 (AE) 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

  18. 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

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

  20. 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 → aR1B | CBR1B | CBB | aB | b C → AC | c R1 →BR1 | B S → AB |  A → aR1 | CBR1 | CB | a B → 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.

  21. 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

More Related