Download - Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Transcript
Page 1: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Departamento de Tecnologías de la Información

Ciencias de la Computación e Inteligencia Artificial

Tema 3: Fundamentos de la

Teoría de Gramáticas

Formales

Page 2: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

2

Page 3: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

3

Page 4: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.1 Concepto básico de Gramática. Ejemplos

• Una gramática define la estructura de las frases y

de las palabras de un lenguaje.

• Las gramáticas son un método para la generación

de palabras de un lenguaje a partir de un alfabeto.

– para generar estas palabras se utilizan las derivaciones.

– se denominan formales porque se centran en los estudios

de los lenguajes formales que son aquellos que están

definidos a partir de reglas preestablecidas. Para los

lenguajes naturales existen otro tipo de gramáticas.

4

Page 5: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.1 Concepto básico de Gramática. Ejemplos

• La gramática de la lengua castellana se expresa mediante reglas sencillas que

definen las partes de la oración, y que permiten comprobar fácilmente si una

frase determinada es o no correcta. Analizar la frase “La niña pedía comida a

María en el parque”.

<oración> ::= <sujeto><predicado><sujeto> ::= <frase_nominal><frase_nominal> ::= <grupo_nominal><frase_nominal> ::= <grupo_nominal><calificativos><grupo_nominal> ::= <nombre><grupo_nominal> ::= <artículo><nombre><calificativo> ::= <conjunción><oración><calificativo> ::= <adjetivo><predicado> ::= <verbo><complementos><complementos> ::= <directo><indirecto><circunstancial><complementos> ::= <directo>< circunstancial><complementos> ::= <indirecto><circunstancial><complementos> ::= <circunstancial><circunstancial> ::= <circunstancial> ::= <circunstancial><circunstancial><directo> ::= <frase_nominal><indirecto> ::= “a”<frase_nominal><circunstancial> ::= <preposición><frase_nominal>

5

Page 6: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.1 Concepto básico de Gramática. Ejemplos

• Obsérvese la existencia de recursividad en las reglas de producción. Algunas

la introducen directamente, como en el caso <circunstancial> ::=

<circunstancial><circunstancial>, mientras que en otras de forma indirecta

(<oración> <sujeto> <frase_nominal> <calificativo> <oración>).

• Para completar las reglas sintácticas anteriores se necesita información

morfológica sobre las palabras. Esta información también puede escribirse en

forma de reglas de producción:

<nombre> ::= “niña”

<nombre> ::= “María”

<nombre> ::= “comida”

<nombre> ::= “parque”

<artículo> ::= “la”

<verbo> ::= “pedía”

<preposición> ::= “en”

6

Page 7: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.1 Concepto básico de Gramática. Ejemplos

• Teniendo en cuenta todas estas reglas, y aplicando el concepto de derivación, se puede obtener la frase considerada partiendo de una palabra de una sola letra <oración>:

<oración>

<sujeto><predicado>

<frase_nominal><predicado>

<grupo_nominal><predicado>

<artículo><nombre><predicado>

la <nombre><predicado>

la niña <predicado>

la niña <verbo><complementos>

la niña pedía<complementos>

la niña pedía <directo><indirecto><circunstancial>

la niña pedía comida <indirecto><circunstancial>

7

Page 8: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.1 Concepto básico de Gramática. Ejemplos

la niña pedía comida a <frase_nominal><circunstancial>

la niña pedía comida a <grupo_nominal><circunstancial>

la niña pedía comida a <nombre><circusntancial>

la niña pedía comida a María <circunstancial>

la niña pedía comida a María <preposición><frase_nominal>

la niña pedía comida a María en <frase_nominal>

la niña pedía comida a María en <grupo_nominal>

la niña pedía comida a María en <articulo><nombre>

la niña pedía comida a María en el <nombre>

la niña pedía comida a María en el parque

• Por tanto, al haber una derivación que produce dicha frase

partiendo de <oración>, se sigue que se trata de una frase correcta

que pertenece al lenguaje representado por la gramática.

8

Page 9: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.1 Concepto básico de Gramática. Ejemplos

• Ejemplo: consideremos la instrucción de cualquier lenguaje x = y+2*z con:

– conjunto de producciones :

<instrucción> ::= <asignación>

<asignación> ::= <identificador>”=”<expresión>

<expresión> ::= <sumando>

<expresión> ::= <sumando>”+”<expresión>

<sumando> ::= <factor>

<sumando> ::= <factor> “*” <sumando>

<factor> ::= <identificador>

<factor> ::= <número>

– Reglas morfológicas :

<identificador> ::= “x”

<identificador> ::= “y”

<identificador> ::= “z”

<número> ::= “2”

9

Page 10: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.1 Concepto básico de Gramática. Ejemplos

• Obtenemos la expresión x = y+2*z a partir de <instrucción> así:

<instrucción>

<asignación>

<identificador> = <expresión>

x = <expresión>

x = <sumando> + <expresión>

x = <factor> + <expresión>

x = <identificador> + <expresión>

x = y+ <expresión>

x = y+ <sumando>

x = y+ <factor> * <sumando>

x = y+ <número> * <sumando>

x = y+2* <sumando>

x = y+2* <factor>

x = y+2* <identificador>

x = y+2*z

10

Page 11: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

11

Page 12: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.2 Concepto de gramática formal

Definiciones

• Producción o regla (x::=y):

es un par ordenado (x, y) con x, y *, es decir, si se encuentra x como parte

de cualquier palabra v se puede sustituir x por y en v, lo que permite

transformar palabras en otras

• Derivación directa vw:

aplicación de una producción (x ::= y) a una palabra v para convertirla en

otra w donde v=zxu y w=zyu (v, w, z, u *)

– Se cumple que para cada producción x::=y existe una derivación directa (haciendo

z=u=λ): x y

• Derivación v * w:

aplicación de una secuencia de producciones a una palabra.

• Longitud de la derivación:

número de derivaciones que hay que aplicar para obtener la palabra.

12

Page 13: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.2 Concepto de gramática formal

Definiciones

• Derivación más a la izquierda:

Se utiliza en cada derivación directa la producción aplicada a los símbolos

más a la izquierda de la palabra.

• Derivación más a la derecha:

Se utiliza en cada derivación directa la producción aplicada a los símbolos

más a la derecha de la palabra.

13

Page 14: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.2 Concepto de gramática formal

Definiciones

• Se denomina gramática formal a la cuádrupla

G = (T,N, S, P)

– T, alfabeto de símbolos terminales

– N, alfabeto de símbolos no terminales

– S N, es el axioma o símbolo inicial

– P es un conjunto finito de reglas de producción de la forma u ::=

v, donde u + y v *.

Se verifica además que:

– T N =

– el alfabeto es = T N

14

Page 15: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.2 Concepto de gramática formal

Forma normal de Backus

• Ejemplo : consideremos la gramáticaT = {0, 1, 2}

N = {N, C}

S = N

P = { N::=NC, N::=C, C::=0, C::=1, C::=2}

• Es posible establecer una notación simplificada para las reglas de producción. Si existen dos reglas de la forma

u::=v

u::=w

se pueden representar de la forma:

u::=v | w

Esta forma de representar las reglas de producción recibe el nombre de

“forma normal de Backus” (o BNF)

15

Page 16: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.2 Concepto de gramática formal

Formas sentenciales y sentencias

• Sea G = (T,N, S, P). Una palabra x * se denomina forma sentencial de G si se verifica que

S * x – Considerando la gramática anterior, las siguientes son

formas sentenciales : NCC, NC2, 120

S = N NC NCC

S = N NC NCC NC2

S = N NC NCC CCC 1CC 12C 120

• Si una forma sentencial x cumple que x T* se dice que x es una sentencia o instrucción de G. Es decir, las sentencias estarán compuestas únicamente por símbolos terminales.

– En el ejemplo anterior es sentencia: 120

16

Page 17: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.2 Concepto de gramática formal

Lenguaje asociado a una gramática

• Sea una gramática G = (T,N, S, P). Se llama lenguajeasociado a la G, o lenguaje generado por G, o lenguajedescrito por G, al conjunto :

L(G) = { x / S * x and x T* }

Conjunto de todas las sentencias de la gramática

• Ya que la teoría de gramáticas formales (Chomsky), junto conla notación BNF, proporciona una forma de describirlenguajes, esta simbología se considera como unmetalenguaje (lenguaje para describir lenguajes).

17

Page 18: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

18

Page 19: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

• Chomsky clasificó las gramáticas en cuatro grandes grupos : G0, G1,

G2 y G3. Cada uno de estos grupos incluye las gramáticas del

siguiente, de acuerdo con el siguiente esquema:

G3 G2 G1 G0

19

Page 20: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

1. Gramáticas tipo 0

• Las reglas de producción tienen la forma

u ::= v

donde u +, v *, u = xAy con x *, y *, A N sin otra restricción

– En las reglas de producción:

• La parte izquierda no puede ser la palabra vacía.

• En la parte izquierda (u) ha de aparecer algún símbolo no terminal.

• Los lenguajes representados por estas gramáticas reciben el nombre de

lenguajes sin restricciones. Puede demostrarse que todo lenguaje

representado por este tipo de gramáticas pueden ser descritos también por

un grupo de gramáticas un poco más restringido (llamado de gramáticas de

estructura de frases), cuyas producciones tienen la forma xAy ::= xvy, donde

x, y, v *, siendo A un símbolo no terminal.

20

Page 21: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

• Ya que v puede ser la palabra vacía, se sigue que en estas reglas podemos

encontrar situaciones en que la parte derecha sea más corta que la izquierda.

Las reglas en que ocurre esto se denominan compresoras. Una gramática que

contenga al menos una regla compresora se denomina gramática

compresora.

• En las gramáticas compresoras, las derivaciones pueden ser decrecientes, ya

que la longitud de las palabras puede disminuir en cada uno de los pasos de

derivación.

– Ejemplo: sea G = ({a, b}, {A, B, C}, A, P), donde P:

A ::= aABC | abCCB ::= BCbB ::= bbbC ::= b

21

Page 22: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

• Esta gramática es de tipo 0, no es de estructura de frases por la regla CB ::= BC

• Formas de considerarla:

• Considerando x = , A = C, y = B. Estaría formada la parte izquierda de la producción, pero la derecha será vB y sea cual sea v, no podrá ser BC

• Considerando x = C, A = B, y = . Así tendríamos formada la parte izquierda de la regla, pero en la derecha tendríamos Cv, y sea v lo que sea no podremos obtener CB.

• Ya no es posible hacer ninguna otra descomposición, por lo que esta regla no pertenece al esquema de reglas visto para las gramáticas de estructura de frases.

• Para la producción : A ::= aABC:

• A = A, x= , y =. Si hacemos v = aABC, la regla se ajusta al formato

considerado.

22

Page 23: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

• Sin embargo la regla CB ::= BC puede descomponerse en las cuatro reglas

siguientes, que permiten obtener las mismas derivaciones con más pasos,

pero ajustándose a las condiciones exigidas para que la gramática sea de

estructura de frases.

CB ::= XB

XB ::= XY

XY ::= BY

BY ::= BC

La gramática resultante, tendrá 3 reglas de producción más y dos símbolos

adicionales (X, Y) en el alfabeto de símbolos no terminales.

• Veamos la derivación de la sentencia aaabbb, mediante la gramática original :

A a(A)BC aa(A)BCBC aaab(CB)CBC aaa(bB)CCBC aaab(bC)CBC

aaab(bC)BC aaab(bB)C aaabb(bC) aaabbb

• Se observa también que la gramática es compresora, debido a la presencia de

la regla bC ::= b.

• Puede comprobarse que el lenguaje generado por esta gramática es

{anbn|n=1,2,..}

23

Page 24: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

2. Gramáticas tipo 1

• Las reglas de producción de esta gramática tienen la forma

xAy ::= xvydonde x, y *, v + y A ha de ser un símbolo no terminal. (A puede transformarse en v sólo si aparece en el contexto definido por x e y)

• Ya que v no puede ser la palabra vacía, se deduce de aquí que este tipo de gramáticas no

pueden tener reglas compresoras. Se admite una excepción en la regla S ::= (siendo S el

axioma de la gramática). Como consecuencia se tiene que la palabra vacía pertenece al

lenguaje generado por la gramática sólo si contiene esta regla.

• Los lenguajes generados por este tipo de gram{ticas se denominan “dependientes del contexto”.

24

Page 25: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

2. Gramáticas tipo 1

• Evidentemente todas las gramáticas de tipo 1 son también de tipo 0, y así, todos los lenguajes dependientes de contexto serán también lenguajes sin restricciones.

• Ejemplo : G = ({S, B, C}, {a, b, b}, S,P), donde P es:

S ::= aSBc | aBC

bB ::= bb

bC ::= bc

CB ::= BC

cC ::= cc

aB ::= ab

25

Page 26: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3. Gramáticas tipo 2

• Las reglas de estas gramáticas se ajustan al siguiente esquema:

A ::= v

donde v *, y A N En concreto v puede ser .

• Para toda gramática de tipo 2 existe una gramática equivalente desprovista de reglas de la forma A ::= , que generará el mismo lenguaje que la de partida, excepto la palabra vacía. Si se le añade a la segunda gramática la regla S ::= , las gramáticas generarán el mismo lenguaje.

• Por lo tanto, se pueden definir las gramáticas de tipo 2 de una forma más restringida, en el que las reglas de producción tendrán la siguiente forma

A ::= v donde v +, y A N . Además podrán contener regla

S ::=

• Los lenguajes generados por este tipo de gramáticas se denominan independientes de contexto, ya que la conversión de A en v puede realizarse independientemente del contexto en que aparezca A.

26

Page 27: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3. Gramáticas tipo 2

• La mayor parte de los lenguajes de programación de ordenadores pueden describirse mediante gramáticas de este tipo.

• Ejemplo : sea la gramática G = ({a, b}, {S}, S, { S ::= aSb | ab}).

Es una gramática de tipo 2. La derivación de la palabra aaabbb será:

S aSb aaSbb aaabbb

Puede verse que el lenguaje definido por esta gramática es {anbn | n=1, 2, ...}

• Un mismo lenguaje puede generarse por muchas gramáticas diferentes. Sin embargo, una gramática determinada describe siempre un lenguaje único.

27

Page 28: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

4. Gramáticas tipo 3

Estas gramáticas se clasifican en los dos grupos siguientes:

• Gramáticas lineales por la izquierda, cuyas reglas de producción pueden tener una de

las formas siguientes:

A ::= a

A ::= Va

S ::=

donde a T, A, V N, y S es el axioma de la gramática.

• Gramáticas lineales por la derecha, cuyas reglas de producción tendrán la forma:

A ::= a

A ::= aV

S ::=

donde a T, A, V N, y S es el axioma de la gramática.

• Los lenguajes representados por este tipo de gramáticas se denominan lenguajes

regulares.

28

Page 29: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

4. Gramáticas tipo 3

• G1 = ({ 0, 1}, {A, B}, A, { A ::= B1 | 1, B ::= A0})

Gramática lineal por la izquierda que describe el lenguaje:

L1 = { 1, 101, 10101, ... } = {1(01)n | n = 0, 1, 2, ...}

• G2 = ({ 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A})

Gramática lineal derecha que genera el mismo lenguaje que la gramática

anterior.

29

Page 30: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

30

Page 31: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.4 Árboles de derivación

• A toda derivación de una gramática de tipo 1, 2 ó 3 le corresponde un árbol de

derivación. Este árbol se construye así :

– La raíz del árbol corresponde al axioma de la gramática

– Una derivación directa se representa por un conjunto de ramas que salen de un

nodo determinado. Al aplicar una regla, uno de los símbolos de la parte izquierda

de la producción queda sustituido por la palabra de la parte derecha. Por cada uno

de los símbolos de x se dibuja una rama, que parte del nodo correspondiente al

símbolo sustituido.

– En cada rama, el nodo de partida se denomina padre. El final se denomina hijo del

primero. Dos nodos hijos del mismo padre se denominan hermanos. Un nodo es

ascendiente de otro si es su padre o ascendiente de su padre. Un nodo es

descendiente de otro si es su hijo o es descendiente de su hijo.

• A lo largo del proceso de construcción del árbol, los nodos finales de cada paso, leídos

de izquierda a derecha, forman la forma sentencial obtenida por la derivación

representada por el árbol.

• Será rama terminal aquella dirigida hacia un símbolo terminal. Este nodo se llama hoja.

El conjunto de hojas, leído de izquierda a derecha, forma la sentencia generada por la

derivación.31

Page 32: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.4 Árboles de derivación

32

• Ejemplo : sea la gramática

G = ({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},{N,C}, N,

{N ::= C | NC, C ::=0|1|2|3|4|5|6|7|8|9})

– Consideraremos la derivación :

N NC NCC CCC 2CC 23C 234

– El árbol de derivación correspondiente es:

C

4

N

N

2

C

3

N

C

Subárbol

Dado un árbol correspondiente a una derivación, se denomina subárbol al árbol cuya

raíz es un nodo cualquiera y cuyos nodos son los descendientes de éste.

Teorema : Los nodos terminales de un subárbol, leídos de izquierda a derecha, forman una

frase respecto de la raíz del subárbol.

Demostración :

Sea U la raíz del subárbol, y sea u la palabra formada por los nodos terminales del subárbol. Así, se

verifica que U +u

Sea x la palabra formada, leyendo de izquierda a derecha, los nodos terminales del árbol situados a la

izquierda de los del subárbol. Sea y la palabra formada, leyendo de izquierda a derecha, los nodos

terminales situados a la derecha de los del subárbol. De esta forma se verifica que xuy es la sentencia

definida por el árbol completo.

Como S *xUy y además U +u, se sigue que u es una frase respecto de U y de la forma sentencial

xuy.

Si todos los nodos terminales del subárbol son hijos de la raíz, entonces u es una frase

simple.

Page 33: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.4 Árboles de derivación

• Proceso inverso

– Para cada derivación existe un único árbol de derivación. Sin

embargo, de una misma sentencia pueden obtenerse, a veces,

varias derivaciones diferentes.

– Por ejemplo, el mismo árbol anterior puede aplicarse a las

siguientes derivaciones :

N NC NCC CCC 2CC 23C 234

N NC NCC CCC C3C 23C 234

N NC NCC CCC 2CC 2C4 234

33

Page 34: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

34

Page 35: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.5 Ambigüedad

• Se dice que una sentencia es ambigua cuando para una misma sentencia podemos tener varios árboles de derivación diferentes.

(Como se vio en el ejemplo anterior, una misma sentencia puede obtenerse como

resultado de varias derivaciones diferentes, pero a las que les corresponde un único árbol de derivación.)

• Se dice que una gramática es ambigua si tiene al menos una sentencia ambigua.

• Se dice que un lenguaje es ambiguo si existe una gramática ambigua que lo genera.

• Ejemplo :

– G = ({i, +, *, (, )}, {E}, E, E ::= E + E | E * E | ( E ) | i })

– Consideremos la sentencia i+i*i. Para esta sentencia podemos tener los siguientes árboles de derivación :

35

Page 36: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.5 Ambigüedad

36

• árboles de derivación para la sentencia i+i*i.

E

E

i +

E

E

*

E

i i

E

i*

E

E

i +

E

i

E

Esto no quiere decir que el lenguaje sea ambiguo, ya que se puede encontrar

una gramática equivalente a la anterior, sin ser ambigua.

Pero hay lenguajes para los cuales es imposible encontrar gramáticas no

ambiguas. Estos lenguajes se denominan “inherentemente ambiguos”.

Page 37: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.5 Ambigüedad

37

• Ejemplo: gramática equivalente a la anterior sin ser ambigua:

G = ({i, +, *, (, )}, {E, T, F}, E,

E ::= T | E + E, T ::= F | T * F, F ::= ( E ) | i })

• Existe un sólo árbol de derivación para la sentencia i+i*i

E

E

i +

T

T

*

F

i i

T

F F

Page 38: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

38

Page 39: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.6 Recursividad

39

• Una gramática G se llama recursiva en A, A N, si

A + xAy– Si x es la palabra vacía, se dice que la gramática es recursiva a izquierdas

A + Ay– Si y es la palabra vacía, se dice que la gramática es recursiva a derechas

A + xA

• Se dice que una producción es recursiva si

A::= xAy

– La producción es recursiva a izquierdas si x =.

A::= Ay

– Será recursiva a derechas si y =.

A::= xA

• Si un lenguaje es infinito, la gramática que lo representa ha de ser recursiva.

Page 40: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.6 Recursividad

40

• Eliminación de la recursividad por la izquierda en producciones de un mismo símbolo no terminal:

A N

Si P1= (A::=A1| A2|<.| An|1| 2|<|m) donde i no comienza por A

entonces //crear un símbolo nuevo A’

N= N {A’};

P=(P-P1) {A::= 1A’| 2A’|<|mA’ ; A’::= 1A’| 2A’|<|nA’|λ}

fsi

f

Page 41: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.6 Recursividad

41

• Eliminación de la recursividad por la izquierda en más de un paso

1. Disponer los N en algún orden A1, A2,<An

2. Para i:=1 hasta n

Para j:=1 hasta n

Si i j entonces

reemplazar cada producción Ai::= Aj θ por:

Ai::= δ1 θ | δ2 θ |<<. δk θ

donde Aj::= δ1 | δ2 |<<. δk son todas las reglas de Aj

fsi

Eliminar la recursividad por la izquierda de las Ai

fpara

fpara

Page 42: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.6 Recursividad

42

G =({i,+,*,(,)},{E,T},E, P={E ::=T+E | T*E | i ; T::=E|(E)})1. A1=E; A2=T

2. Bucles:

i=1 (A1=E); j=1 (A1=E). Se reemplazarían E::=E. No hay.

i=1 (A1=E); j=2 (A2=T). Se reemplazan E::=T. El nuevo P’ es

E ::=E+E | E*E |(E)+E | (E)*E | i

T::= E | (E)

• Se elimina la recursión en E quedando P’’:

E ::= (E)+EE’ | (E)*EE’ | i E’

E’ ::= +EE’ | *EE’ | λ

T::= E | (E)

i=2 (A2=T); j=1 (A1=E). Se reemplazan T::=E. El nuevo P’’’ es

E ::= (E)+EE’ | (E)*EE’ | i E’

E’ ::= +EE’ | *EE’ | λ

T::= (E)+EE’ | (E)*EE’ | i E’ | (E)

• Se eliminaría la recursión en T si la hubiera.

i=2 (A2=T); j=2 (A2=T). Se reemplazarían T::=T. No hay

• El conjunto final de producciones es P’’’

Page 43: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

Índice

3.1. Concepto básico de Gramática. Ejemplos

3.2. Concepto de gramática formal

3.3. Tipos de Gramáticas. Jerarquía de Chomsky

3.4. Árboles de derivación

3.5. Ambigüedad

3.6. Recursividad

3.7. Factorización a izquierdas

43

Page 44: Tema 3: Fundamentos de la Teoría de Gramáticas Formalesuhu.es/francisco.moreno/talf/docs/tema3.pdf · 2011. 3. 16. · Tema 3: Fundamentos de la Teoría de Gramáticas Formales

Tema 3: Fundamentos de laTeoría de Gramáticas Formales

Teoría de Autómatas y Lenguajes Formales

3.7 Factorización a izquierdas

44

• Se puede factorizar a izquierdas cuando en una gramática aparecen producciones

de un mismo símbolo no terminal en cuya parte derecha, la primera parte es

común.

• Algoritmo de factorización a izquierdas:

A N

Si A::=1| 2 | <..|n

entonces //crear un símbolo nuevo A’ y cambiar las producciones por:

N= N {A’};

A::= A’

A’::= 1| 2|<|n

fsi

f

• Ejemplo: {E ::=E+E | E*E | i }. Se crea E’ y quedaría:

E ::= EE’ | i

E’::= +E| *E