20/04/2015
1
Teora de la Computacin
Fundamentos de la Teora de Gramticas
-1-
1
Dra. Norka Bedregal Alpaca
Dra. Norka Bedregal Alpaca
2
GR
AMT
ICA
S FO
RM
ALES
INTRODUCCININTRODUCCIN
20/04/2015
2
IntroduccinIntroduccin
Los lenguajes son subconjuntos de las palabras sobre un alfabeto
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 dice que las gramticas son formales porque se centran en los estudios de los lenguajes formales.
Los lenguajes formales son aquellos que estn definidos a partir de reglas preestablecidas.
Para los lenguajes naturales existen otro tipo de gramticas.
Dra. Norka Bedregal Alpaca
3
GR
AMT
ICA
S FO
RM
ALES
Gramtica FormalGramtica Formal
Cmo se pueden definir las palabras que pertenecen a un determinado lenguaje? Enumerando el conjunto de palabras
Qu sucede si algunos lenguajes son infinitos? Descripcin informal de las palabras:
Puede ser complicado e impreciso Descripcin formal, basada en los operadores de
palabras: No es suficiente para especificar todos los
lenguajes Es necesario un formalismo para definir los lenguajes
(las palabras que pertenecen a un lenguaje). una posibilidad: Gramticas formales:
Dra. Norka Bedregal Alpaca
4
GR
AMT
ICA
S FO
RM
ALES
20/04/2015
3
Gramtica FormalGramtica Formal
Gramtica formal: Una gramtica describe de forma inequvoca la
estructura de las palabras de un lenguaje Proporciona un mecanismo para generar todas las
palabras que pertenecen a un determinado lenguaje Tambin se llaman gramticas generadoras
Dra. Norka Bedregal Alpaca
5
GR
AMT
ICA
S FO
RM
ALES
Dra. Norka Bedregal Alpaca
6
GR
AMT
ICA
S FO
RM
ALES
PRODUCCIONESDERIVACIONES
PRODUCCIONESDERIVACIONES
20/04/2015
4
ProduccionesProduccionesDefinicin (Produccin):Sea un alfabeto. Una produccin, regla de produccin, regla de derivacin, o regla de escritura, es un par ordenado (x, y), tambin representado por x ::= y, tal que:
x + y *donde x es la cabeza o parte izquierda de la produccin, e y su cuerpo o parte derecha.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
Dra. Norka Bedregal Alpaca
7
GR
AMT
ICA
S FO
RM
ALES
Ejemplos: = {ab}; a ::= bbv = aabbaa
w1 = bbabbaa w2 = aabbaa w3 = bbbbbbaa w4 = aabbabb
Dra. Norka Bedregal Alpaca
8
GR
AMT
ICA
S FO
RM
ALES
ProduccionesProducciones
20/04/2015
5
DerivacionesDerivacionesDefinicin (Derivacin directa):Sea un alfabeto, x ::= y una produccin sobre , sean v, w *.
Se dice que w es una derivacin directa de v, o v produce directamente w, o v se reduce de forma directa a w, y se representa por v w, si:
Dra. Norka Bedregal Alpaca
9
GR
AMT
ICA
S FO
RM
ALES
uyzwuxzvuz == :, *
Se cumple que para cada produccin x::=y existe una derivacin directa (haciendo z = u = ) tal que x yEjemplo:
= {A, B, C, , X, Y, Z}BA ::= ME
CABALLO ::= CAMELLO
Definicin (Derivacin):Sean un alfabeto, P un conjunto de producciones sobre . Sean v y w dos palabras de *. Se dice que w deriva de v, o v produce w, o v se reduce a w, y se presenta por v * w si:
1. v = w 2. Existe una secuencia finita de derivaciones
directas u0 u1
u1 u2
un-1 un , tales que u0 = v y un = wEs la aplicacin de una secuencia de producciones a una palabra.
Dra. Norka Bedregal Alpaca
10
GR
AMT
ICA
S FO
RM
ALES
DerivacionesDerivaciones
20/04/2015
6
La longitud de una derivacin v * w es el nmero de derivaciones directas en la secuencia.
El operador + se refiere a una derivacin con longitud >0.
Ejemplos:1. 1. La longitud de u *u es 0.2. = { C, N, 0, 1, 2 }
P = { N::=CN, N::=C, C::=0, C::=1, C::=2} N CN CN CC CC 0C 0C 00
N *00 con longitud 4Dra. Norka Bedregal Alpaca
11
GR
AMT
ICA
S FO
RM
ALES
DerivacionesDerivaciones
Definiciones: Derivacin ms a la izquierda:Se utiliza en cada derivacin directa la produccin aplicada a los smbolos ms 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.
Dra. Norka Bedregal Alpaca
12
GR
AMT
ICA
S FO
RM
ALES
DerivacionesDerivaciones
20/04/2015
7
1. Reflexiva:
2. Transitiva:
3. Simtrica: no se cumple
Dra. Norka Bedregal Alpaca
13
GR
AMT
ICA
S FO
RM
ALES
Propiedades de la derivacinPropiedades de la derivacin
xxx *: +
zxzyyxsizyx ***:,, +
Dra. Norka Bedregal Alpaca
14
GR
AMT
ICA
S FO
RM
ALES
GRAMTICAS FORMALES
GRAMTICAS FORMALES
20/04/2015
8
Motivacin:Ejemplo Castellano:La sintaxis del castellano se define mediante reglas:
1. Una oracin consta de sujeto y predicado y termina con un punto.
2. Un sujeto es una frase nominal.3. Una frase nominal es un grupo nominal seguido
de un calificativo (que puede faltar)4. ...
Dra. Norka Bedregal Alpaca
15
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
Motivacin:Ejemplo Castellano:Se pueden usar producciones para representar estas reglas: ::= . ::= ::= ::=
Dra. Norka Bedregal Alpaca
16
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
20/04/2015
9
Se puede analizar si una palabra del lenguaje (en castellano se llaman frases) es gramaticalmente correcta:
Dra. Norka Bedregal Alpaca
17
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
La idea consiste en definir un lenguaje mediante reglas de produccin.Ejemplo: lenguaje formal 1 = { S, A, a, b }P = { S::=Ab, A::=aAb, A::= }Cules son las posibles derivaciones (irreducibles) desde ? S Ab b S Ab aAbb abb S Ab aAbb aaAbbb aabbb ...
{ x | S * xyx es irreducible} = {an bn+1 |n 0}
Dra. Norka Bedregal Alpaca
18
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
20/04/2015
10
Ejemplo: lenguaje formal 2 = { S, a, b }P = { S::= , S::=aSb} {x | S * xyx es irreducible }?
Se puede considerar que los elementos de tienen distinta funcionalidad: S y A : variables (smbolos no terminales) a y b : smbolos terminales S: smbolo no terminal de partida (axioma)
Dra. Norka Bedregal Alpaca
19
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
Definicin (Gramtica formal):Se denomina gramtica formal a una cudrupla:
G = (N, T, S, P ) donde: N es un conjunto finito llamado alfabeto de smbolos
no terminales o, simplemente alfabeto de variables T es un conjunto finito, se denomina alfabeto de
smbolos terminales N y T son disjuntos; se cumple que es la unin de
N y T S N es una variable distinguida que se denomina
axioma o smbolo inicial
Dra. Norka Bedregal Alpaca
20
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
20/04/2015
11
Definicin (Gramtica formal): P es un conjunto finito llamado conjunto de
producciones (o simplemente sistema de escritura) cuyos elementos tienen la forma u ::= v, tal que:
o u + v *
o u = xAy, x,y * , A N
Dra. Norka Bedregal Alpaca
21
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
Dra. Norka Bedregal Alpaca
22
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
Nota: Para obtener el lenguaje hay que derivar desde el axioma.
20/04/2015
12
Ejemplos:1. G1 = ({S,A), {a,b}, S, P)
P = { S::=Ab, A::=aAb, A::= }
2. G = (N , T , S, P) no es una gramtica si S N u ::= v P con u T *
Existe a tal que a T a N
Dra. Norka Bedregal Alpaca
23
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
Definicin:Una gramtica se encuentra representada en la forma Backus-Naur (BNF), si todas las producciones tienen la forma u::=v y todas las producciones con la misma cabeza:
u ::= v , u ::= w, ...
se representan por: u ::= v | w | ...
Dra. Norka Bedregal Alpaca
24
GR
AMT
ICA
S FO
RM
ALES
Gramtica forma Backus-Naur (BNF)Gramtica forma Backus-Naur (BNF)
20/04/2015
13
Ejemplo: Sea la gramtica
T = {0, 1, 2}N = {N, C}S = NP = { N::=NC, N::=C, C::=0, C::=1, C::=2}
Es posible establecer una notacin simplificada para las reglas de produccin. Si existen dos reglas de la forma
u::=v
u::=w
se pueden representar de la forma u::=v | w, con lo que:N ::= NC | C C ::= 0 | 1 | 2
Dra. Norka Bedregal Alpaca
25
GR
AMT
ICA
S FO
RM
ALES
Gramtica forma Backus-Naur (BNF)Gramtica forma Backus-Naur (BNF)
Ejemplo:Dada G = ( {0, 1, 2, 3, 4, , 9}, { N, C }, N, P)con P = { N ::= NC | C , C ::= 0 | 1 | 2 | 3 | | 9 }
Luego L(G) = {N}Entonces, para crear 2015 N
N NC N5 NC5 N15 NC15 N015 C015 2015
Dra. Norka Bedregal Alpaca
26
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
20/04/2015
14
Ejemplo:Dada la gramtica G = ( { 0, 1 }, { S }, S, P)con P = { S ::= 00S1 | }
Luego el lenguaje generado es L(G) = { 02n 12n / n 0 }
puesto queS 00 S 11 00 11 = 0212
Dra. Norka Bedregal Alpaca
27
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
Ejemplo:Dada la gramtica G = ( { a, b } , { A, B, C }, A, P)con el conjunto de producciones:P = { A ::= aABC | abC, CB ::= BC, bB ::= bb, bC ::= b }
Encuentre L(G) = ?
Dra. Norka Bedregal Alpaca
28
GR
AMT
ICA
S FO
RM
ALES
Gramtica formalGramtica formal
20/04/2015
15
Definicin (forma sentencial):Sea una gramtica G = ( N, T, S, P). Una forma sentencial de G es una secuencia de smbolos x * tal que S * x.
Ejemplo:G = ( {S,A), { a, b}, S, P)P = { S ::= Ab, A ::= aAb | }
Formas sentenciales: S, Ab, aaAbbb, aabbb, b No lo son: a, aaAbb
Dra. Norka Bedregal Alpaca
29
GR
AMT
ICA
S FO
RM
ALES
Formas sentenciales y SentenciasFormas sentenciales y Sentencias
Ejemplo:Sea la gramtica
T = {0, 1, 2}N = {N, C}S = NP = { N::=NC, N::=C, C::=0, C::=1, C::=2}
las siguientes son formas sentenciales: NCC, NC2, 120
S = N NC NCCS = N NC NCC NC2S = N NC NCC CCC 1CC 12C 120
Dra. Norka Bedregal Alpaca
30
GR
AMT
ICA
S FO
RM
ALES
Formas sentenciales y SentenciasFormas sentenciales y Sentencias
20/04/2015
16
Definicin (sentencia):Una sentencia de G es una forma sentencial x tal que:
x T*
Es decir, las sentencias estarn compuestas nicamente por smbolos terminales.
Ejemplo:En el ejemplo anterior es sentencia: 120
Dra. Norka Bedregal Alpaca
31
GR
AMT
ICA
S FO
RM
ALES
Formas sentenciales y SentenciasFormas sentenciales y Sentencias
Dra. Norka Bedregal Alpaca
32
GR
AMT
ICA
S FO
RM
ALES
LENGUAJE ASOCIADO A UNA
GRAMTICA
LENGUAJE ASOCIADO A UNA
GRAMTICA
20/04/2015
17
Definicin (lenguaje reconocido):Dada una gramtica G = ( N, T, S, P), se llama lenguaje reconocido por G, lenguaje asociado a G, lenguaje descrito por G o lenguaje generado por G, al conjunto formado por todas las sentencias de G:
L(G) = { x | S * x x T* }
Nota: A las sentencias tambin se les denomina palabras
Ejemplos:1. G1 = ( {S,A), { a, b}, S, P)
con P={S::=Ab, A::=aAb| }L (G1) = {an bn+1 | n 0}
Dra. Norka Bedregal Alpaca
33
GR
AMT
ICA
S FO
RM
ALES
Lenguaje asociado a una gramticaLenguaje asociado a una gramtica
Ejemplos:2. G2 = ( {S, A), { a, b}, S, P)
con P= {S::=Ab, A::=aAb}L(G2)?
Dra. Norka Bedregal Alpaca
34
GR
AMT
ICA
S FO
RM
ALES
Lenguaje asociado a una gramticaLenguaje asociado a una gramtica
3. G3 = ( {S,A), {a ,b }, S, P) con P = { S ::=Ab, A::=aAb|aS }L(G3)?
4. G4 = ( {S, A), { a, b}, S, P) con P = { S::=Ab, A::=ab|a}
L(G4)?
20/04/2015
18
Dra. Norka Bedregal Alpaca
35
GR
AMT
ICA
S FO
RM
ALES
Lenguaje asociado a una gramticaLenguaje asociado a una gramticaEjemplos:5. G5 = ( {A, B, C, D, E, S}, {a}, S, P )
con P = { S ::= ABaC, Ba::=aaB,BC::=DC|E, aD::=Da, AD::=AB, aE::=Ea, AE::= }
L(G5)?
6. G6 = ( {S,A), {a, b}, S, P) con P = { S::=Ab, A::=Aab|a}L(G6)?
Observacin: Ya que la teora de gramticas formales (Chomsky),
junto con la notacin BNF, proporciona una forma de describir lenguajes
Esta simbologa se considera como un meta lenguaje (lenguaje para describir lenguajes).
Dra. Norka Bedregal Alpaca
36
GR
AMT
ICA
S FO
RM
ALES
Lenguaje asociado a una gramticaLenguaje asociado a una gramtica
20/04/2015
19
Tipos de GramticasTipos 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 del siguiente, de acuerdo con el siguiente esquema:
Dra. Norka Bedregal Alpaca
37
GR
AMT
ICA
S FO
RM
ALES
Dra. Norka Bedregal Alpaca
38
GR
AMT
ICA
S FO
RM
ALES
TIPOS DE GRAMTICAS
TIPOS DE GRAMTICAS
20/04/2015
20
Tipos de GramticasTipos de Gramticas
Jerarqua de Chomsky:
L(G0) = lenguajes recursivamente enumerables o sin restricciones
L(G1) = lenguajes sensibles al contexto L(G2) = lenguajes independientes del contexto L(G3) = lenguajes regulares
Dra. Norka Bedregal Alpaca
39
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
Tambin llamadas gramticas sin restricciones
Definicin (Gramticas Tipo 0):Las gramticas de tipo 0 son las definidas anteriormente, cuyas reglas de produccin tiene la forma:
xAy ::= v con x, y ,v * , A N
En las reglas de produccin: La parte izquierda no puede ser la palabra vaca. En la parte izquierda debe aparecer algn smbolo no
terminal.
Dra. Norka Bedregal Alpaca
40
GR
AMT
ICA
S FO
RM
ALES
20/04/2015
21
Gramticas tipo 0Gramticas tipo 0
Puede demostrarse que todo lenguaje representado por este tipo de gramticas pueden ser descritos tambin por un grupo de gramticas un poco ms restringido
A este grupo se le llama gramticas de estructura de frases
Definicin (gramtica de estructura de frases):Una gramtica de estructura de frases es aquella cuyasproducciones tienen la forma:
xAy ::= xvy con x, y, v *, A N
Dra. Norka Bedregal Alpaca
41
GR
AMT
ICA
S FO
RM
ALES
Nota:
v puede ser la palabra vaca Luego, en estas reglas se puede encontrar situaciones
en que la parte derecha sea ms corta que la izquierda. Las reglas en que ocurre esto se denominan
compresoras. Una gramtica que contenga al menos una regla
compresora se denomina gramtica compresora. En las gramticas compresoras, las derivaciones
pueden ser decrecientes, ya que la longitud de las palabras puede disminuir en cada uno de los pasos de derivacin.
Dra. Norka Bedregal Alpaca
42
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
20/04/2015
22
Ejemplo:sea G = ({a, b}, {A, B, C}, A, P), donde P:
A ::= aABC | abCCB ::= BCbB ::= bbbC ::= b
Esta gramtica es de tipo 0, y no es de estructura de frases por la regla CB ::= 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 podr ser BC
Dra. Norka Bedregal Alpaca
43
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
Ejemplo (continuacin): Considerando x= C, A = B, y= . Se tendra
formada la parte izquierda de la regla, pero en la derecha se tendra Cv, y cualquiera sea el valor de v no se podr 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 de estructura de frases.
Para la produccin: A ::= aABC A = A, x = , y= . Si se hace v= aABC, la regla
se ajusta al formato considerado.
Dra. Norka Bedregal Alpaca
44
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
20/04/2015
23
Ejemplo (continuacin): Sin embargo la regla CB ::= BC puede descomponerse
en las cuatro reglas siguientes, que permiten obtener las mismas derivaciones con ms pasos, pero ajustndose a las condiciones exigidas para que la gramtica sea de estructura de frases.
CB ::= XB XB ::= XY
XY ::= BY
BY ::= BCLa gramtica resultante, tendr 3 reglas de produccin ms y dos smbolos adicionales (X, Y) en el alfabeto de smbolos no terminales.
Dra. Norka Bedregal Alpaca
45
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
Ejemplo (continuacin): Considerando 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 de la regla bC ::= b.
Puede comprobarse que el lenguaje generado por esta gramtica es {anbn | n = 1, 2, ...}
Dra. Norka Bedregal Alpaca
46
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
20/04/2015
24
Ejercicios:De las siguientes producciones, indicar cuales cumplen el criterio de gramticas de estructura de frases y cuales no.
aABcD ::= aABD
aAd ::= ad aABd ::= aACDEfAd aABE ::= aABeE
CB::=BC
Dra. Norka Bedregal Alpaca
47
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
Ejercicio: Cmo convertir CB::=BC en estructura de frases?CB ::= XB; XB ::= XY; XY ::= BY; BY ::= BC
Propiedad de las gramticas de tipo 0Todo lenguaje descrito por una gramtica del tipo 0, puede ser generado por una gramtica de estructuras de frases.
Dra. Norka Bedregal Alpaca
48
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 0Gramticas tipo 0
20/04/2015
25
Tambin llamadas gramticas sensibles al contexto. Los lenguajes generados por este tipo de gramticas se denominan dependientes del contexto.
Definicin (Gramticas de tipo 1)::Las gramticas de tipo 1 son aquellas cuyas producciones tienen una de las dos formas siguientes:
1. xAy ::= xvy con x, y *, A N, v +
2. S ::= siendo S N el axiomaObservaciones: A puede transformarse en v slo si aparece en el
contexto definido por x e y.
Dra. Norka Bedregal Alpaca
49
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 1Gramticas tipo 1
Observaciones (continuacin): Las producciones mantienen el contexto pero no
pueden ser compresoras (con la excepcin de S::= ) Luego, si no se utiliza la regla S::= , se tiene:
S u1 u2 ... uncon 1 |u1| |u2| ... |un|
La regla S::= permite generar la palabra vaca. Como consecuencia se tiene que la palabra vaca
pertenece al lenguaje generado por la gramtica slo si contiene esta regla.
Todas las gramticas de tipo 1 son tambin de tipo 0, y as, todos los lenguajes dependientes de contexto sern tambin lenguajes sin restricciones.
Dra. Norka Bedregal Alpaca
50
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 1Gramticas tipo 1
20/04/2015
26
Ejemplo:Dada la gramtica G = ( {S, B, C}, {a, b, b}, S, P ), donde P es:
S ::= aSBc | aBC bB ::= bb bC ::= bc CB ::= BC cC ::= cc aB ::= abG es una gramtica tipo 1
Dra. Norka Bedregal Alpaca
51
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 1Gramticas tipo 1
Ejercicios: Cules de las siguientes reglas son de tipo 1?
a) AB ::= aCdBb) aA ::= aCBbbc) aBA ::= ad) ABC ::= ACe) AaBF ::= AaCF
Dra. Norka Bedregal Alpaca
52
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 1Gramticas tipo 1
20/04/2015
27
Tambin llamadas gramticas independientes del contexto
Definicin:Las gramticas de tipo 2 son aquellas cuyas producciones tienen la forma:
A ::= v con v * , A NEn concreto v puede ser .Observaciones: A ::= es una produccin de tipo 2. 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 palabra vaca.
Dra. Norka Bedregal Alpaca
53
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 2Gramticas tipo 2
Observaciones (Continuacin): A ::= es una produccin de tipo 2. 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 palabra vaca.
Si se le aade a la segunda gramtica la regla S ::= , las gramticas generarn el mismo lenguaje.
Luego, todo lenguaje generado por una gramtica de tipo 2 puede ser generado por una gramtica definida de manera ms restringida, cuyas producciones tienen la forma:
1. A ::= v con v + , A N2. S ::= siendo S el axioma de la gramtica
Dra. Norka Bedregal Alpaca
54
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 2Gramticas tipo 2
20/04/2015
28
Observaciones (Continuacin): Los lenguajes generados por este tipo de gramticas
se denominan independientes de contexto, ya que la conversin de A en v puede realizarse independientemente del contexto en que aparezca A.
La mayor parte de los lenguajes de programacin de computadores pueden describirse 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
Dra. Norka Bedregal Alpaca
55
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 2Gramticas tipo 2
Se observa que el lenguaje definido por esta gramtica es { an bn | n = 1, 2, ... }
Un mismo lenguaje puede generarse por varias gramticas diferentes.
Sin embargo, una gramtica determinada describe siempre un lenguaje nico.
Dra. Norka Bedregal Alpaca
56
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 2Gramticas tipo 2
20/04/2015
29
Ejercicios:Cules de las siguientes reglas son de tipo 2?
AA ::= b A ::= aaB
aBA ::= a
a ::= AC A ::=
Dra. Norka Bedregal Alpaca
57
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 2Gramticas tipo 2
Tambin llamadas gramticas regulares
Definicin (Gramticas regulares normalizadas):
Gramticas lineales por la izquierda: Todas aquellas cuyas producciones tienen una de las siguientes formas:
A ::= a
A ::= Va (S, A,V N, a T, y S el axioma)S ::=
Dra. Norka Bedregal Alpaca
58
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
20/04/2015
30
Gramticas lineales por la derecha: Todas aquellas cuyas producciones tienen una de las siguientes formas:
A ::= a
A ::= aV ( S, A, V N, a T y S el axioma)S ::=
Una gramtica es regular (o de tipo 3) si es lineal por la derecha o lineal por la izquierda.
Observacin:Los lenguajes representados por una gramtica regular se denominan lenguajes regulares.
Dra. Norka Bedregal Alpaca
59
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
Ejemplos:1. 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, ...}
2. G2 = ( { 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A } )Gramtica lineal derecha que genera el mismo lenguaje que la gramtica anterior.
3. G3 = ( {A,B,C}, {a, b}, A, {A ::= aB, B ::= Cb, ...} )No es lineal por la derecha ni lineal por la izquierda, pero s es una gramtica lineal.
Dra. Norka Bedregal Alpaca
60
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
20/04/2015
31
Ejercicios:Cules de las siguientes reglas son de tipo 3?
aA ::= aaV
A ::= abV A ::= Ba
A ::= C A ::=
Dra. Norka Bedregal Alpaca
61
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
Observaciones:Hay definiciones ms generales para gramticas lineales por la derecha (izquierda) [Linz]:Una gramtica se denomina lineal por la derecha si sus producciones tienen las siguientes formas:
A ::= xB
A ::= x donde A,B N y x T*
Dra. Norka Bedregal Alpaca
62
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
20/04/2015
32
Ejemplo:Lenguaje representado por G1 = ( {S, A, B}, {0,1}, S, P )Con P = { S ::= 0A | 1, A ::= 1A | 1B, B ::= 0S }
Luego: S 1 S 0A 01B 010S 0101 S 0A 01A 011B 0110S 01101 S 0A 01A 011B 0110S 01100A
011001B 0110010S 01100101 S 0A *01...1A 01...1B 01...1B
01...10S 01...101
Dra. Norka Bedregal Alpaca
63
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
Ejemplo (continuacin):Lenguaje representado por G1 = ( {S, A, B}, {0,1}, S, P )Con P = { S ::= 0A | 1, A ::= 1A | 1B, B ::= 0S }
S 0A *01...1A 01...1B 01...10S 01...100A *01...1001...1A *01...1001...1B 01...1001...10S 01...1001...101
Luego el lenguaje generado es:L(G) = { (0 1i 0)j 1 | i 1, j 0}
Dra. Norka Bedregal Alpaca
64
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
20/04/2015
33
Ejercicios:Encuentre los lenguajes generados por las siguientes gramticas1. Lenguaje representado por
G = ( { S, B }, { 0, 1 }, S, P )con P = { S ::= B1 | 1, B ::= S0 }
2. Lenguaje representado por G = ( { S, B }, { 0, 1 }, S, P ) con P = { S ::= 1B | 1, B ::= 0S }
Dra. Norka Bedregal Alpaca
65
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
Ejercicios:Encuentre los lenguajes generados por las siguientes gramticas1. Lenguaje representado por
G = ( { S, B }, { 0, 1 }, S, P )con P = { S ::= B1 | 1, B ::= S0 }
2. Lenguaje representado por G = ( { S, B }, { 0, 1 }, S, P ) con P = { S ::= 1B | 1, B ::= 0S }
Dra. Norka Bedregal Alpaca
66
GR
AMT
ICA
S FO
RM
ALES
Gramticas tipo 3Gramticas tipo 3
20/04/2015
34
Dra. Norka Bedregal Alpaca
67
GR
AMT
ICA
S FO
RM
ALES
ResumenResumen
Dra. Norka Bedregal Alpaca
68
GR
AMT
ICA
S FO
RM
ALES
Continuara.Continuara.