Teoría de Autómatas y Lenguajes Formales...

16
Teoría de Autómatas y Lenguajes Formales Introducción a las Gramáticas. Gramáticas incontextuales José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

Transcript of Teoría de Autómatas y Lenguajes Formales...

Page 1: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Teoría de Autómatas y Lenguajes Formales

Introducción a las Gramáticas. Gramáticas incontextuales

José M. Sempere

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

Page 2: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Introducción a las gramáticas.Gramáticas incontextuales

1. Conceptos básicos sobre las gramáticas formales

2. Una clasificación gramatical de los lenguajes formales: La Jerarquía de

de Chomsky

3. Conceptos básicos de las gramáticas incontextuales

4. Simplificación de gramáticas incontextuales

5. Formas Normales en las gramáticas incontextuales

Bibliografía

• John Hopcroft, Jeffrey D. Ullman, Rajeev Motwani.

Introducción a la teoría de autómatas, lenguajes y computación

Addison Wesley, 2002.

• P. García, E. Segarra, T. Pérez, J.M. Sempere, J. Ruiz, M. Vázquez de Parga.

Apuntes sobre la Teoría de Autómatas y Lenguajes Formales. Editorial UPV.

Servicio de Publicaciones SPUPV-96.846. 1996.

Page 3: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Conceptos básicos sobre las gramáticas formales

Una gramática se define mediante la tupla G=(N,T,P,S) donde

N es un alfabeto de símbolos auxiliares (variables)

T es un alfabeto de símbolos terminales (constantes)

P es un conjunto finito de producciones

S N es un símbolo inicial o axioma

Se debe cumplir que N T =

Una producción es un par ( ) que lo escribiremos como → donde es el

antecedente o parte izquierda y es el consecuente o parte derecha. Se debe

cumplir que (N T)*N(N T)* y (N T)*. Cuando varias producciones

compartan el mismo antecedente las escribiremos de forma compacta como

→ 1 | 2 | … | n.

Nota: Las gramáticas las definiremos a partir de sus producciones. Tomaremos

el criterio de indicar los símbolos auxiliares mediante letras mayúsculas, los

símbolos terminales mediante letras minúsculas y dígitos y el axioma mediante

la letra S mientras no se indique lo contrario.

Page 4: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Conceptos básicos sobre las gramáticas formales

Relaciones de derivación

Dada una gramática G=(N,T,P,S) definiremos la relación de derivación directa entre

las cadenas formadas por símbolos auxiliares y terminales

G

321

321

P 22

sii con

*T)(N ,, 231

*T)N(N*T)(N 2

Dada una relación de derivación directa podemos calcular su clausura reflexiva y

transitiva para definir la relación de derivación de la siguiente forma

G

*sii se cumple una de las dos siguientes condiciones:

)1(

GG que tal Existe )2( *

Nota: En lo sucesivo eliminaremos el símbolo G de las relaciones de derivación

siempre que quede establecida la gramática de referencia.

Page 5: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Conceptos básicos sobre las gramáticas formales

Formas sentenciales, palabras y lenguajes

Dada una gramática G=(N,T,P,S) definiremos una forma sentencial de la

gramática como una cadena (N T)* tal queG

S *

Dada una gramática G=(N,T,P,S) definiremos una palabra o cadena de la

gramática como una cadena T* tal queG

S *

Dada una gramática G=(N,T,P,S) definiremos el lenguaje generado por G como

el conjunto de cadenas o palabras de G. Formalmente se expresa como sigue

}:{)( * xSTxGLG

*

Page 6: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Conceptos básicos sobre las gramáticas formales

Algunos ejemplos de gramáticas y sus lenguajes generados

Ejemplo 1G: S → 0A | 1B

A → 0A |

B → 1B |

L(G) = { 0n : n 1 } { 1n : n 1 } = 00* + 11*

S 0A 00A 000A 000

Ejemplo 2G: S → AB

A → aAa | a

B → bBb |

L(G) = { a2n+1b2m: n,m 0 }

S AB aAaB aaaB aaabBb aaabb

Ejemplo 3

G: S → ACaB aD → Da

Ca → aaC AD → AC

CB → DB aE → Ea

CB → E AE → S ACaB AaaCB AaaDB AaDaB

ADaaB ACaaB AaaCaB AaaaaCB

AaaaaE AaaaEa AaaEaa AaEaaa

AEaaaa aaaa

}0:{)( 2 iaGLi

Page 7: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Una clasificación gramatical de los lenguajes formalesLa Jeraquía de Chomsy

En la clasificación de Chomsky se establecen cuatro tipos de gramáticas de acuerdo

con las formas de sus producciones

Gramáticas de tipo 0 (no restringidas o con estructura de frase)

Gramáticas de tipo 1 (sensibles al contexto)

Gramáticas de tipo 2 (de contexto libre o incontextuales)

Gramáticas de tipo 3 (regulares)

Lineales por la izquierda Lineales por la derecha

G=(N,T,P,S)

(N T)*N(N T)* (N T)*

1 2 3 → 1 2 3

A → A N (N T)*

2 (N T)*N(N T)* 1, 3, 2 (N T)* | 2| | 2|

El único auxiliar que puede generar es el axioma siempre que no aparezca en la parte

derecha de ninguna producción

A → Ba | B | a |

A,B N a T

A → aB | B | a |

A,B N a T

Page 8: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Una clasificación gramatical de los lenguajes formalesLa Jeraquía de Chomsy

Cada clase de gramáticas define una clase de lenguajes. Tenemos cuatro clases

de lenguajes que se relacionan entre sí, formando una jerarquía.

RE - La clase de los lenguajes recursivamente enumerables : Lenguajes

generados por gramáticas de tipo 0.

CS - La clase de los lenguajes sensibles al contexto: Lenguajes generados por

gramáticas de tipo 1.

CF - La clase de los lenguajes de contexto libre : Lenguajes generados por

gramáticas de tipo 2.

REG - La clase de los lenguajes regulares : Lenguajes generados por gramáticas

de tipo 3 (lineales por la izquierda o por la derecha)

REG CF CS RE

La Jerarquía de Chomsky

Page 9: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Una clasificación gramatical de los lenguajes formalesLa Jeraquía de Chomsy

RE

CS

CF

REG

La Jerarquía de Chomsky

Lenguajes generados por gramáticas de tipo 0

Lenguajes aceptados por máquinas de Turing

{<M,w> : M acepta w}

Lenguajes generados por gramáticas de tipo 1

Lenguajes aceptados por autómatas de memoria

limitada linealmente

{anbncn: n > 0}

Lenguajes generados por gramáticas de tipo 2

Lenguajes aceptados por autómatas de pila

{anbn: n > 0}

Lenguajes generados por gramáticas de tipo 3

Lenguajes aceptados por autómatas finitos

{anbm: n,m > 0}

Page 10: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Gramática incontextual:

G=(N, , P, S) con las producciones de la forma

A A N, (N )*

S AB

A aAb |

B cBd |

S AB aAbB abB abcBd abcd

Derivaciones por la izquierda : En cada paso de derivación se sustituye el auxiliar de la forma

sentencial más a la izquierda

Gramáticas incontextualesConceptos básicos

Derivaciones por la derecha : En cada paso de derivación se sustituye el auxiliar de la forma

sentencial más a la derecha

Ejemplo

S AB AcBd Acd aAbcd abcd

S AB AcBd aAbcBd aAbcd abcd

Derivación por la izquierda

Derivación por la derecha

Derivación arbitraria

Page 11: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Árboles de derivación

G=(N, , P, S) con las producciones de la forma

A A N, (N )*

S AB

A aAb |

B cBd |

Un árbol de derivación es un árbol que cumple las siguientes condiciones:

1. La raíz está etiquetada con el símbolo del axioma

2. Los nodos internos están etiquetados por símbolos auxiliares

3. Las hojas están etiquetadas por símbolos terminales o la cadena vacía

4. Si una hoja está etiquetada por es el único descendiente de su nodo padre

5. Un nodo etiquetado por A tiene hijos etiquetados por B1, B2, …, Bn sólo si

la producción A → B1B2 …Bn pertenece a la gramática

Gramáticas incontextualesConceptos básicos

Ejemplo

Un A-árbol es un árbol de derivación cuya raíz está etiquetada por el símbolo A

S

BA

Aa b c dB

Page 12: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Árboles de derivación

G=(N, , P, S) con las producciones de la forma

A A N, (N )*

S AB

A aAb |

B cBd |

Todo árbol de derivación define una derivación por la izquierda y una derivación por la derecha.

(las derivaciones por la izquierda (derecha) siguen un recorrido en profundidad del árbol por la

izquierda (derecha))

Gramáticas incontextualesConceptos básicos

EjemploS

BA

Aa b c dB

Denominaremos frontera o resultado del árbol a la cadena formada por los símbolos que etiquetan

las hojas haciendo un recorrido en profundidad por la izquierda

S AB aAbB abB abcBd abcd

S AB AcBd Acd aAbcd abcd

resultado: abcd

Page 13: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Ambigüedad

G=(N, , P, S) con las producciones de la forma

A A N, (N )*

S AB | ABA

A aAb | AA |

B cBd |

Una gramática es ambigua si existen al menos dos árboles de derivación distintos cuyos

resultados son el mismo (para la cadena resultado existen al menos dos derivaciones

distintas por la izquierda)

Gramáticas incontextualesConceptos básicos

Ejemplo

S

BA

Aa b c dB

S

BA

Aa b c dB

A

A A

x = abcd

Page 14: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Ambigüedad

G=(N, , P, S) con las producciones de la forma

A A N, (N )*

Un lenguaje es inherentemente ambiguo si todas las gramáticas que lo generan son

ambiguas

Gramáticas incontextualesConceptos básicos

Teorema: Existen lenguajes incontextuales inherentemente ambiguos.

Ejemplo: L = { anbncmdm : n,m > 0 } {anbmcmdn : n,m > 0}

Equivalencia

Dos gramáticas G1 y G2 son equivalentes si generan el mismo lenguaje, L(G1)=L(G2)

Dos gramáticas G1 y G2 son casi-equivalentes si generan el mismo lenguaje, con

excepción de la cadena vacía L(G1)=L(G2) – { }

Page 15: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Simplificación de gramáticas incontextuales

Una gramática incontextual G=(N, , P, S) diremos que está simplificada si

(1) Todos sus símbolos son útiles

(1.1) Generativos A N :

(1.2) Alcanzables A ( N):

(2) No contiene producciones unitarias

(3) No contiene producciones vacías

Para toda gramática incontextual G1 existe una gramática incontextual

G2 simplificada tal que L(G2) = L(G1) – { }

* wwAG

*

*)(, NASG

*

NBABA ,

NAA

Page 16: Teoría de Autómatas y Lenguajes Formales …users.dsic.upv.es/asignaturas/facultad/tal/gramCF.pdf · Introducción a las gramáticas. Gramáticas incontextuales 1. Conceptos básicos

Formas Normales en las gramáticas incontextuales

Una gramática incontextual G=(N, , P, S) diremos que está en Forma Normal de Chomsky

si todas sus producciones toman una de las dos siguientes formas

(1) A BC A, B, C N

(2) A a a

Para toda gramática incontextual G1 existe una gramática incontextual

G2 en Forma Normal de Chomsky tal que L(G2) = L(G1) – { }

Una gramática incontextual G=(N, , P, S) diremos que está en Forma Normal de Greibach

si todas sus producciones son de la forma

A a a N*

Para toda gramática incontextual G1 existe una gramática incontextual

G2 en Forma Normal de Greibach tal que L(G2) = L(G1) – { }