Chomsky
-
Upload
edward-gomez -
Category
Documents
-
view
19 -
download
0
Transcript of Chomsky
-
5/25/2018 Chomsky
1/44
Departamento de Tecnologas de la Informacin
Ciencias de la Computacin e Inteligencia Artificial
Tema 3: Fundamentos de la
Teora de GramticasFormales
-
5/25/2018 Chomsky
2/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
2
-
5/25/2018 Chomsky
3/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
3
-
5/25/2018 Chomsky
4/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.1 Concepto bsico deGramtica. Ejemplos
Una gramtica define la estructura de las frases y
de las palabras de un lenguaje.
Las gramticas son un mtodo para la generacin
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 estn
definidos a partir de reglas preestablecidas. Para los
lenguajes naturales existen otro tipo de gramticas.
4
-
5/25/2018 Chomsky
5/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.1 Concepto bsico deGramtica. Ejemplos
La gramtica de la lengua castellana se expresa mediante reglas sencillas quedefinen las partes de la oracin, y que permiten comprobar fcilmente si unafrase determinada es o no correcta. Analizar la frase La nia peda comida a
Mara en el parque.
::= ::= ::=
::= ::= ::= ::= ::= ::= ::= ::= < circunstancial> ::= ::= ::= ::= ::= ::= a ::=
5
-
5/25/2018 Chomsky
6/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.1 Concepto bsico deGramtica. Ejemplos
Obsrvese la existencia de recursividad en las reglas de produccin. Algunas
la introducen directamente, como en el caso ::=, mientras que en otras de forma indirecta
( ).
Para completar las reglas sintcticas anteriores se necesita informacin
morfolgica sobre las palabras. Esta informacin tambin puede escribirse en
forma de reglas de produccin:
::= nia
::= Mara
::= comida
::= parque
::= la
::= peda
::= en
6
-
5/25/2018 Chomsky
7/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.1 Concepto bsico deGramtica. Ejemplos
Teniendo en cuenta todas estas reglas, y aplicando el concepto dederivacin, se puede obtener la frase considerada partiendo de unapalabra de una sola letra :
la
la nia
la nia
la nia peda la nia peda
la nia peda comida
7
-
5/25/2018 Chomsky
8/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.1 Concepto bsico deGramtica. Ejemplos
la nia peda comida a la nia peda comida a la nia peda comida a la nia peda comida a Mara la nia peda comida a Mara la nia peda comida a Mara en la nia peda comida a Mara en
la nia peda comida a Mara en la nia peda comida a Mara en el la nia peda comida a Mara en el parque
Por tanto, al haber una derivacin que produce dicha frase
partiendo de , se sigue que se trata de una frase correctaque pertenece al lenguaje representado por la gramtica.
8
-
5/25/2018 Chomsky
9/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.1 Concepto bsico deGramtica. Ejemplos
Ejemplo: consideremos la instruccin de cualquier lenguaje x = y+2*zcon:
conjunto de producciones : ::= ::= =
::=
::= + ::= ::= *
::= ::=
Reglas morfolgicas : ::= x
::= y
::= z
::= 2
9
-
5/25/2018 Chomsky
10/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.1 Concepto bsico deGramtica. Ejemplos
Obtenemos la expresin x = y+2*z a partir de as:
= x = x = + x = + x = + x = y+ x = y+ x = y+ *
x = y+ * x = y+2* x = y+2* x = y+2* x = y+2*z
10
-
5/25/2018 Chomsky
11/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
11
-
5/25/2018 Chomsky
12/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.2 Concepto de gramticaformal
Definiciones
Produccin o regla (x::=y):es un par ordenado (x, y) con x, y *, es decir, si se encuentra x como partede cualquier palabra v se puede sustituir x pory en v, lo que permitetransformar palabras en otras
Derivacin directa vw:aplicacin de una produccin (x ::= y) a una palabra v para convertirla enotra w donde v=zxu y w=zyu (v, w, z, u *)
Se cumple que para cada produccin x::=y existe una derivacin directa (haciendo
z=u=): x y Derivacin v * w:
aplicacin de una secuencia de producciones a una palabra. Longitud de la derivacin:
nmero de derivaciones que hay que aplicar para obtener la palabra.
12
-
5/25/2018 Chomsky
13/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.2 Concepto de gramticaformal
Definiciones
Derivacin ms a la izquierda:Se utiliza en cada derivacin directa la produccin aplicada a los smbolosms a la izquierda de la palabra.
Derivacin ms a la derecha:
Se utiliza en cada derivacin directa la produccin aplicada a los smbolos
ms a la derecha de la palabra.
13
-
5/25/2018 Chomsky
14/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.2 Concepto de gramticaformal
Definiciones
Se denominagramtica formal a la cudrupla
G = (T,N, S, P) T, alfabeto de smbolos terminales
N, alfabeto de smbolos no terminales S N, es el axioma o smbolo inicial
P es un conjunto finito de reglas de produccin de la forma u ::=
v, donde u + y v *.
Se verifica adems que: T N = el alfabeto es = T N
14
C d i
-
5/25/2018 Chomsky
15/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.2 Concepto de gramticaformal
Forma normal de Backus
Ejemplo : consideremos la gramticaT = {0, 1, 2}N = {N, C}S = N
P = { N::=NC, N::=C, C::=0, C::=1, C::=2} Es posible establecer una notacin simplificada para las reglas deproduccin. Si existen dos reglas de la forma
u::=vu::=w
se pueden representar de la forma:
u::=v | wEsta forma de representar las reglas de produccin recibe el nombre deforma normal de Backus (o BNF)
15
3 2 C d i
-
5/25/2018 Chomsky
16/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.2 Concepto de gramticaformal
Formas sentenciales y sentencias
Sea G = (T,N, S, P). Una palabra x * se denomina formasentencial de G si se verifica que
S * x Considerando la gramtica anterior, las siguientes son
formas sentenciales : NCC, NC2, 120S = N NC NCCS = N NC NCC NC2S = N NC NCC CCC 1CC 12C 120
Si una forma sentencial x cumple que x T* se dice que x esuna sentencia o instruccin de G. Es decir, las sentenciasestarn compuestas nicamente por smbolos terminales. En el ejemplo anterior es sentencia: 120
16
3 2 C t d ti
-
5/25/2018 Chomsky
17/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.2 Concepto de gramticaformal
Lenguaje asociado a una gramtica
Sea una gramtica 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 gramtica
Ya que la teora de gramticas formales (Chomsky), junto conla notacin BNF, proporciona una forma de describir
lenguajes, esta simbologa se considera como unmetalenguaje (lenguaje para describir lenguajes).
17
-
5/25/2018 Chomsky
18/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
18
d d l 3 3 Ti d G ti
-
5/25/2018 Chomsky
19/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
Chomsky clasific las gramticas en cuatro grandes grupos : G0, G1,G2 y G3. Cada uno de estos grupos incluye las gramticas delsiguiente, de acuerdo con el siguiente esquema:
G3
G2
G1
G0
19
T F d d l 3 3 Ti d G ti
-
5/25/2018 Chomsky
20/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
1. Gramticas tipo 0
Las reglas de produccin tienen la formau ::= v
donde u +, v *, u = xAy con x *, y *, A N sin otra restriccin En las reglas de produccin:
La parte izquierda no puede ser la palabra vaca.
En la parte izquierda (u) ha de aparecer algn smbolo no terminal. Los lenguajes representados por estas gramticas reciben el nombre de
lenguajes sin restricciones. Puede demostrarse que todo lenguaje
representado por este tipo de gramticas pueden ser descritos tambin por
un grupo de gramticas un poco ms restringido (llamado de gramticas de
estructura de frases), cuyas producciones tienen la forma xAy ::= xvy, dondex ,y ,v *, siendo A un smbolo no terminal.
20
T 3 F d t d l 3 3 Ti o de G a ti a
-
5/25/2018 Chomsky
21/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
Ya que v puede ser la palabra vaca, se sigue que en estas reglas podemosencontrar situaciones en que la parte derecha sea ms corta que la izquierda.Las reglas en que ocurre esto se denominan compresoras. Una gramtica quecontenga al menos una regla compresora se denomina gramticacompresora.
En las gramticas compresoras, las derivaciones pueden ser decrecientes, yaque la longitud de las palabras puede disminuir en cada uno de los pasos de
derivacin. Ejemplo: sea G = ({a, b}, {A, B, C}, A, P), donde P:
A ::= aABC | abCCB ::= BCbB ::= bbbC ::= b
21
T 3 F d t d l 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
22/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
Esta gramtica es de tipo 0, no es de estructura de frases por la reglaCB ::= BC
Formas de considerarla: Considerando x = , A = C,y = B. Estara formada la parte izquierda
de la produccin, pero la derecha ser vB y sea cual sea v, no podrser BC
Considerando x = C, A = B,y = . As tendramos formada la parteizquierda de la regla, pero en la derecha tendramos Cv, y sea v lo
que sea no podremos obtener CB. Ya no es posible hacer ninguna otra descomposicin, por lo que esta
regla no pertenece al esquema de reglas visto para las gramticas deestructura de frases.
Para la produccin : A ::= aABC:
A = A, x=
,y =
. Si hacemos v = aABC, la regla se ajusta al formatoconsiderado.
22
T 3 F d t d l 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
23/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
Sin embargo la regla CB ::= BC puede descomponerse en las cuatro reglassiguientes, que permiten obtener las mismas derivaciones con ms pasos,pero ajustndose a las condiciones exigidas para que la gramtica sea deestructura de frases.
CB ::= XB
XB ::= XY
XY ::= BY
BY ::= BC
La gramtica resultante, tendr 3 reglas de produccin ms y dos smbolosadicionales (X, Y) en el alfabeto de smbolos no terminales.
Veamos la derivacin de la sentencia aaabbb, mediante la gramtica 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 tambin que la gramtica es compresora, debido a la presencia dela regla bC ::= b.
Puede comprobarse que el lenguaje generado por esta gramtica es{anbn|n=1,2,..}
23
T 3 F d t d l 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
24/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
2. Gramticas tipo 1
Las reglas de produccin de esta gramtica tienen la formaxAy ::= xvy
donde x, y *, v + y A ha de ser un smbolo no terminal.(A puede transformarse en v slo si aparece en el contexto definido por x e y)
Ya que v no puede ser la palabra vaca, se deduce de aqu que este tipo de gramticas no
pueden tener reglas compresoras. Se admite una excepcin en la regla S ::= (siendo S elaxioma de la gramtica). Como consecuencia se tiene que la palabra vaca pertenece al
lenguaje generado por la gramtica slo si contiene esta regla.
Los lenguajes generados por este tipo de gram{ticas se denominan dependientes delcontexto.
24
Te a 3 Fu da e to de la 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
25/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
2. Gramticas tipo 1
Evidentemente todas las gramticas de tipo 1 son tambin de tipo 0, y as,todos los lenguajes dependientes de contexto sern tambin lenguajes sinrestricciones.
Ejemplo : G = ({S, B, C}, {a, b, b}, S,P), donde P es:S ::= aSBc | aBC
bB ::= bbbC ::= bcCB ::= BCcC ::= ccaB ::= ab
25
Tema 3: Fundamentos de la 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
26/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
3. Gramticas tipo 2
Las reglas de estas gramticas se ajustan al siguiente esquema:
A ::= v
donde v *, y A N En concreto v puede ser .
Para toda gramtica de tipo 2 existe una gramtica equivalente desprovista de reglas de
la forma A ::= , que generar el mismo lenguaje que la de partida, excepto la palabravaca. Si se le aade a la segunda gramtica la regla S ::= , las gramticas generarn elmismo lenguaje.
Por lo tanto, se pueden definir las gramticas de tipo 2 de una forma ms restringida, enel que las reglas de produccin tendrn la siguiente forma
A ::= v donde v +, y A N . Adems podrn contener reglaS ::=
Los lenguajes generados por este tipo de gramticas se denominan independientes decontexto, ya que la conversin de A en v puede realizarse independientemente delcontexto en que aparezca A.
26
Tema 3: Fundamentos de la 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
27/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
3. Gramticas tipo 2
La mayor parte de los lenguajes de programacin de ordenadores puedendescribirse mediante gramticas de este tipo.
Ejemplo : sea la gramtica G = ({a, b}, {S}, S, { S ::= aSb | ab}).Es una gramtica de tipo 2. La derivacin de la palabra aaabbb ser:
S aSb aaSbb aaabbb
Puede verse que el lenguaje definido por esta gramtica es {anbn | n=1, 2, ...}
Un mismo lenguaje puede generarse por muchas gramticas diferentes. Sinembargo, una gramtica determinada describe siempre un lenguaje nico.
27
Tema 3: Fundamentos de la 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
28/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
4. Gramticas tipo 3
Estas gramticas se clasifican en los dos grupos siguientes:
Gramticas lineales por la izquierda, cuyas reglas de produccin pueden tener una delas formas siguientes:
A ::= a
A ::= Va
S ::= donde a T, A, V N, y S es el axioma de la gramtica.
Gramticas lineales por la derecha, cuyas reglas de produccin tendrn la forma:
A ::= a
A ::= aV
S ::= donde a T, A, V N, y S es el axioma de la gramtica.
Los lenguajes representados por este tipo de gramticas se denominan lenguajesregulares.
28
Tema 3: Fundamentos de la 3 3 Tipos de Gramticas
-
5/25/2018 Chomsky
29/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.3. Tipos de Gramticas.Jerarqua de Chomsky
4. Gramticas tipo 3
G1 = ({ 0, 1}, {A, B}, A, { A ::= B1 | 1, B ::= A0})
Gramtica 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})
Gramtica lineal derecha que genera el mismo lenguaje que la gramtica
anterior.
29
Tema 3: Fundamentos de la
-
5/25/2018 Chomsky
30/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
30
Tema 3: Fundamentos de la
-
5/25/2018 Chomsky
31/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.4 rboles de derivacin
A toda derivacin de una gramtica de tipo 1, 2 3 le corresponde un rbol de
derivacin. Este rbol se construye as :
La raz del rbol corresponde al axioma de la gramtica Una derivacin directa se representa por un conjunto de ramas que salen de un
nodo determinado. Al aplicar una regla, uno de los smbolos de la parte izquierda
de la produccin queda sustituido por la palabra de la parte derecha. Por cada uno
de los smbolos de x se dibuja una rama, que parte del nodo correspondiente al
smbolo sustituido. En cada rama, el nodo de partida se denominapadre. 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 construccin del rbol, los nodos finales de cada paso, ledosde izquierda a derecha, forman la forma sentencial obtenida por la derivacin
representada por el rbol.
Ser rama terminal aquella dirigida hacia un smbolo terminal. Este nodo se llama hoja.
El conjunto de hojas, ledo de izquierda a derecha, forma la sentencia generada por la
derivacin.31
Tema 3: Fundamentos de la b l d d
-
5/25/2018 Chomsky
32/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.4 rboles de derivacin
32
Ejemplo : sea la gramtica
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 derivacin :
N NC NCC CCC 2CC 23C 234
El rbol de derivacin correspondiente es:
C
4
N
N
2
C
3
N
C
Subrbol
Dado un rbol correspondiente a una derivacin, se denomina subrbol al rbol cuyaraz es un nodo cualquiera y cuyos nodos son los descendientes de ste.
Teorema : Los nodos terminales de un subrbol, ledos de izquierda a derecha, forman una
frase respecto de la raz del subrbol.
Demostracin :
Sea U la raz del subrbol, y sea u la palabra formada por los nodos terminales del subrbol. 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 subrbol. Sea y la palabra formada, leyendo de izquierda a derecha, los nodosterminales situados a la derecha de los del subrbol. De esta forma se verifica que xuy es la sentencia
definida por el rbol completo.
Como S *xUy y adems U +u, se sigue que u es una frase respecto de U y de la forma sentencial
xuy.
Si todos los nodos terminales del subrbol son hijos de la raz, entonces u es una frase
simple.
Tema 3: Fundamentos de la b l d d i i
-
5/25/2018 Chomsky
33/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.4 rboles de derivacin
Proceso inverso
Para cada derivacin existe un nico rbol de derivacin. Sinembargo, 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
Tema 3: Fundamentos de la di
-
5/25/2018 Chomsky
34/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
34
Tema 3: Fundamentos de la 3 5 A bi d d
-
5/25/2018 Chomsky
35/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.5 Ambigedad
Se dice que una sentencia es ambigua cuando para una mismasentencia podemos tener varios rboles de derivacin diferentes.
(Como se vio en el ejemplo anterior, una misma sentencia puede obtenerse comoresultado de varias derivaciones diferentes, pero a las que les corresponde un nicorbol de derivacin.)
Se dice que una gramtica es ambigua si tiene al menos unasentencia ambigua.
Se dice que un lenguaje es ambiguo si existe una gramtica ambiguaque 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 derivacin :
35
Tema 3: Fundamentos de la 3 5 A bi d d
-
5/25/2018 Chomsky
36/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.5 Ambigedad
36
rboles de derivacin 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 gramtica equivalente a la anterior, sin ser ambigua.
Pero hay lenguajes para los cuales es imposible encontrar gramticas no
ambiguas. Estos lenguajes se denominan inherentemente ambiguos.
Tema 3: Fundamentos de la 3 5 A bi d d
-
5/25/2018 Chomsky
37/44
Tema 3: Fundamentos de laTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.5 Ambigedad
37
Ejemplo: gramtica 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 slo rbol de derivacin para la sentencia i+i*i
E
E
i +
T
T
*
F
i i
T
F F
Tema 3: Fundamentos de la di
-
5/25/2018 Chomsky
38/44
e a u a e o e aTeora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
38
Tema 3: Fundamentos de la 3 6 Re u i idad
-
5/25/2018 Chomsky
39/44
Teora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.6 Recursividad
39
Una gramtica G se llama recursiva en A, A N, si
A + xAy Si x es la palabra vaca, se dice que la gramtica es recursiva a izquierdas
A + Ay Siy es la palabra vaca, se dice que la gramtica es recursiva a derechas
A + xA Se dice que una produccin es recursiva si
A::= xAy La produccin es recursiva a izquierdas si x =.
A::= Ay Ser recursiva a derechas si y =.
A::= xA Si un lenguaje es infinito, la gramtica que lo representa ha de ser
recursiva.
Tema 3: Fundamentos de la 3 6 Recursividad
-
5/25/2018 Chomsky
40/44
Teora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.6 Recursividad
40
Eliminacin de la recursividad por la izquierda en producciones de unmismo smbolo no terminal:
A NSi P1= (A::=A1| A2|.| An|1| 2||m) donde i no comienza por Aentonces //crear un smbolo nuevo A
N= N A};
P=(P-P1) {A::= 1A| 2A||mA ; A::= 1A| 2A||nA|}fsi
f
Tema 3: Fundamentos de la 3 6 Recursividad
-
5/25/2018 Chomsky
41/44
Teora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
3.6 Recursividad
41
Eliminacin de la recursividad por la izquierda en ms de un paso
1. Disponer los N en algn orden A1, A2,An2. Para i:=1 hasta n
Para j:=1 hasta nSi i j entoncesreemplazar cada produccin Ai::= Aj por:
Ai::= 1 | 2 |. k donde Aj::= 1 | 2 |. k son todas las reglas de Aj
fsiEliminar la recursividad por la izquierda de las Ai
fparafpara
Tema 3: Fundamentos de la 3 6 Recursividad
-
5/25/2018 Chomsky
42/44
Teora de Gramticas Formales
Teora de Autmatas 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 reemplazaran 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 recursin 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 eliminara la recursin en T si la hubiera.
i=2 (A2=T); j=2 (A2=T). Se reemplazaran T::=T. No hay
El conjunto final de producciones es P
Tema 3: Fundamentos de la ndice
-
5/25/2018 Chomsky
43/44
Teora de Gramticas Formales
Teora de Autmatas y Lenguajes Formales
ndice
3.1. Concepto bsico de Gramtica. Ejemplos
3.2. Concepto de gramtica formal
3.3. Tipos de Gramticas. Jerarqua de Chomsky
3.4. rboles de derivacin3.5. Ambigedad
3.6. Recursividad
3.7. Factorizacin a izquierdas
43
Tema 3: Fundamentos de la 3 7 Factorizacin a izquierdas
-
5/25/2018 Chomsky
44/44
Teora de Gramticas Formales3.7 Factorizacin a izquierdas
Se puede factorizar a izquierdas cuando en una gramtica aparecen produccionesde un mismo smbolo no terminal en cuya parte derecha, la primera parte es
comn. Algoritmo de factorizacin a izquierdas:
A NSi A::=1| 2 | ..|n
entonces //crear un smbolo nuevo A y cambiar las producciones por:N= N A};A::= AA::= 1| 2||n
fsif
Ejemplo: E ::=E+E | E*E | i }. Se crea E y quedara:E ::= EE | i
E::= +E| *E