Especificaciones de Gramáticas II Jerarquía de Chomskymat.uson.mx/lcota/PPT/Gramaticas (3).pdf ·...

58
Especificaciones de Gramáticas II Jerarquía de Chomsky (En construcción) Notas Materia LENGUAJES DE PROGRAMACION María de Guadalupe Cota Ortiz

Transcript of Especificaciones de Gramáticas II Jerarquía de Chomskymat.uson.mx/lcota/PPT/Gramaticas (3).pdf ·...

Especificaciones de Gramáticas II Jerarquía de Chomsky

(En construcción)Notas Materia LENGUAJES DE PROGRAMACION

María de Guadalupe Cota Ortiz

Gramáticas Irrestrictas (Tipo 0)

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

a A B C

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

a A

a A

B C

B C

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

a A

a A

a b C

B C

B C

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

a A

a A

a b C

B C

B C

b

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bbbC → b

A

a A

a A

a b C

B C

B C

b b

b

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

a A

a A

a b C

B C

B C

b b

b

b

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bbbC → b

A

a A

a A

a b C

B C

B C

b b

b

b b

b

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

a A

a A

a b C

B C

B C

b b

b

b b

b

b

Ejemplo de Gramática Tipo 0

A → aABC L(G) = { an bn, , n ≥ 0 }A → abC Revisar: aaabbbCB → BCbB → bb bC → b

A

a A

a A

a b C

B C

B C

b b

b

b b

b

b

Gramáticas Sensibles al Contexto (Tipo 1)

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

0

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

0

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

0

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

0 A

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

0 A

0

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000 Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

0 A

0

0

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

0 A

0

0

0

Ejemplo de Gramática Tipo 1

S → AcA L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0 Revisar: 00c000Ac → AAcAAc → ABcAc → AcBB → AB → AB

S

cA A

AA c A

A0 c B

0 A

0

0

0

Gramáticas Libres del Contexto (Tipo 2)

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: 00c000A → AcAA → c

S

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

cA A

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

cA A

c

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

cA A

c

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

cA A

c c

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

cA A

c c

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

λ

S A

λc

c

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

c

S A

λc

c

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número impar }S → A Revisar: cccA → AcAA → c

S

A

cA A

c c

S A

λc

c

Recursividada derechasRecursividad

a izquierdas

Ejemplo de Gramática Tipo 2

S → λ L(G) = { cn , n ≥ 0 y n es número par }S → cA Revisar: cccA → AcAA → c

S

λ

S A

λc

cc

S

A

c

c

cA A

c c

S

Ac

Ejemplo de Gramática Tipo 2

S → aSb L(G) = { an bn , n > 0 }S → ab Revisar: aabb

S

Sa b

a b

Gramáticas Regulares (Tipo 3)- Lineales a la Izquierda o

- Lineales a la Derecha

Gramática Tipo 3 Equivalente al ejemplo tipo 1

S → 0A L(G) = { 00 0n c 0m, , n ≥ 0, m > 0 }A → 0B Revisar: 00c000B → 0BB → cCC → 0C → 0C

S

A0

B0

c C

0 C

0

S A0

B

0

0

Cc

0

0

Ejemplo de Gramática Tipo 3

S → aA L(G) = { a (anbm ) , n ≥ 0, m > 0 }S → aBA → aA Revisar: aabbbA → bBB → bBB → b

S

Aa

a A

b B

b B

b

Ejemplo de Gramática Tipo 3

S → Aa L(G) = { (an bm) a , n ≥ 0 y m > 0 }S → BaA → Aa Revisar: bbbaaA → BbB → BbB → b

S

A a

aA

bB

bB

b

Conversión - Gramáticas a Autómatas Finitos- Autómatas Finitos a Gramáticas

Conversión de Gramática a AF

S → aA L(G) = { (a, b)n a, n > 0 }S → bAA → aBA → bBB → aB → aAB → bA

S Aa, b

Conversión de Gramática a AF

S → aA L(G) = { (a, b)n a, n > 0 }S → bAA → aBA → bBB → aB → aAB → bA

S Aa, b Ba, b

Conversión de Gramática a AF

S → aA L(G) = { (a, b)n a, n > 0 }S → bAA → aBA → bBB → aB → aAB → bA

S Aa, b Ba, b a

Conversión de Gramática a AF

S → aA L(G) = { (a, b)n a, n > 0 }S → bAA → aBA → bBB → aB → aAB → bA

S Aa, b Ba, b a

a, b

Conversión de AF a GramáticaA → bA Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aB

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → a

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aC

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aCB → bA

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aCB → bAB → aB → b

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aCB → bAB → aB → bC → aD

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aCB → bAB → aB → bC → aDC → bA

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aCB → bAB → aB → bC → aDC → bAC → b

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aCB → bAB → aB → bC → aDC → bAC → bD → aDD → bD

Regla de producción que se genera

A Ba DCa a

a, bb

b

b

Conversión de AF a GramáticaA → bAA → aBA → bA → aB → aCB → bAB → aB → bC → aDC → bAC → bD → aDD → bD

Diagrama de transición (AF)

A Ba DCa a

a, bb

b

b

fIS a b

*A B A

*B C A

*C D A

D D D

Tabla de transición

* Estado de aceptación

A

Función de transición Alfabeto

Estado Inicial