Você está na página 1de 130

!

"#$%&'()*%+#,#
-.)/0123)+#45./)6%+#
Aracell Sanchls de Mlguel
AgaplLo Ledezma Lsplno
!ose A. lgleslas Marunez
8eaLrlz Carcla !lmenez
!uan Manuel Alonso Weber
Crado lngenlerla lnformuca
1eorla de AuLmaLas y Lengua[es lormales

$78-9:;7<#4=>?:$7<#
2
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


uenlclones
Cperaclones
8eglas de derlvacln
3
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%A2&2325&%+#
S|mbo|o
Lnudad absLracLa, no se dene (anlogo al punLo en geomeLrla). Son
leLras, dlglLos, caracLeres, eLc. 1amblen es poslble enconLrar
slmbolos formados por varlos caracLeres, pe[: ll, 1PLn, LLSL, ...
A|fabeto (!)
Con[unLo hn|to no vac|o de leLras o slmbolos.
Sea a" una leLra y ! un alfabeLo, sl a perLenece a ese
alfabeLo " a # !
L[emplos:
!
1
= [A, 8, C, ...,Z}
!
2
= [0, 1}
!
3
= [ll, 1PLn, LLSL, 8LCln, Lnu}
4
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%A2&2325&%+#
a|abra, cadena, nra: Loda secuencla nlLa de slmbolos del alfabeLo.
L[emplos:
palabras sobre !
1
!uAn, lSA8LL, eLc.
palabras sobre !
2
00011101

palabras sobre !
3
ll1PLnLLSLLnu

Notac|n: las palabras se represenLan por leLras mlnusculas del nal
del alfabeLo
(!"#$"#%), pe[ != !uAn, $= ll1PLnLLSLLnu
3
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%A2&2325&%+#
Long|tud de pa|abra
Ls el numero de slmbolos que componen una palabra
La longlLud de la palabra#!#se represenLa por $ !$
L[emplos:
$ !$ = $ !uAn#$ = 4
$ $#$ = $ ll1PLnLLSLLnu $ =13 (en !
1
)
$ $#$ = $ ll1PLnLLSLLnu $ = 4 (en !
3
)


a|abra vac|a (%)
Ls aquella palabra cuya longlLud es cero
Se represenLa por %, $ % $ = 0
Sobre cualquler alfabeLo es poslble consLrulr %
Un||dad: es elemenLo neuLro en muchas operaclones con
palabras y lengua[es
6
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%A2&2325&%+#
Un|verso de| d|scurso, W(!): Ls el con[unLo de Lodas las
palabras que se pueden formar con los slmbolos de un
alfabeLo !
! 1amblen se denomlna Lengua[e unlversal de !
! Se represenLa como W(!)
! Ls un con[unLo lnnlLo
! L[emplo: sea !
4
= [A}, W(!
4
) = [%, A, AA, AAA, ...} con un
numero & de palabras
COROLARIO:
' !, % # W(!) " La palabra vaca pertenece a todos los lenguajes
universales de todos los alfabetos posibles
7
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


uenlclones
Cperaclones
8eglas de derlvacln
8
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


=B%.)325&%+#35&#B)6)C.)+#
Cperaclones con palabras
sobre palabras de un unlverso
del dlscurso dado
1
2
3
ConcaLenacln de palabras
oLencla
8eexln
9
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


1
Concatenac|n de pa|abras
sean dos palabras !, $ Lal que !#!#&'"(, $!!#&'"(, y sea

$ !$ = l = l !
)#
!
*#
+++!
,
$ e $$$ = [ = $ $
)#
$
*#
+++#$
-
$,
se llama concatenac|n de x con y, a:
!#"#$ = !
)#
!
*#
+++#!
,
$
)#
$
*#
+++#$
,
= #, donde %#!#&'"(
10
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


rop|edades:
! Cperacln cerrada (o lnLerna)
! ropledad Asoclauva
! Con elemenLo neuLro.
! no conmuLauva
1
Concatenac|n de pa|abras
Dehn|c|ones:
! Cabeza
! Cola
! LonglLud de palabra
11
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


2
otenc|a
Ls la reduccln de la concaLenacln a los casos que se reeren a
una mlsma palabra
! poLencla ,./0,12# de una palabra al resulLado de concaLenar
esa palabra conslgo mlsma l veces
! concaLenacln es asoclauva " no especlcar el orden
! x
l
= x x x . ....x l veces
! (x
l
( = l (x(
! se cumple:
x
1
= x
x
1 + l
= x x
l
= x
l
x (l>0)
x
[ + l
= x
[
x
l
= x
l
x
[
(l, [>0)
! Sl se dene x
0
= %
(l, [>=0)
12
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


3
keex|n de una pa|abra
Sea la palabra x = a1 a2 a3 ... an,

se denomlna pa|abra ree[a de x,

x-1 = an an-1 ... a2 a1,

formada por los mlsmos slmbolos en dlsunLo orden

(x-1( = (x(
13
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


=B%.)325&%+#35&#6%&'()*%+#
14
l.e. a Lodo con[unLo de palabras sobre un deLermlnado !
l.e. a Lodo con[unLo de palabras generado a parur del alfabeLo !

Cue es un Lengua[e?
Se denomlna Lengua[e sobre e| a|fabeto ! a Lodo
subcon[unLo del lengua[e unlversal de ! (L ) W(!))
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


=B%.)325&%+#35&#6%&'()*%+#
13
Son lengua[es especlales:
* = Lengua[e vaclo, * ) W(!)
[\} = Lengua[e de la palabra vacla
* y [\} se dlferenclan en el numero de palabras
(cardlnalldad) que los forman C(*) = 0 mlenLras que
C([\})=1 se parecen en que * y [\} son lengua[es
sobre cualquler alfabeLo
un alfabeLo es uno de los lengua[es generados por
el mlsmo:
! ) W(!), por e[emplo el chlno
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


=B%.)325&%+#35&#6%&'()*%+#
Cperaclones con lengua[es
sobre un un alfabeLo dado !
1
2
3
unln de lengua[es
ConcaLenacln de lengua[es
8lnolde llbre
16
4
3
6
oLencla de un lengua[e
Clausura o clerre posluvo de un lengua[e
lLeracln, clausura o clerre de un lengua[e
7
8eexln de lengua[es
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


17
1
Un|n de |engua[es
Sean L1 y L2 denldos sobre el mlsmo alfabeLo !, L1, L2 ) W(!),
se llama un|n de dos lengua[es, L1, L2 y se represenLa por L1+ L2 al
lengua[e asl denldo:
L1 + L2 = { x ] x # L1 x # L2 }
Ls el con[unLo formado lndlsunLamenLe por palabras
de uno u oLro de los dos lengua[es (equlvale a la suma)

L1 + L2 = L1 + L2
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


18
2
Concatenac|n de |engua[es
Sean L
1
y L
2
denldos sobre el mlsmo alfabeLo, L
1
, L
2
) W(!),
se llama concatenac|n o producto de dos lengua[es, L
1
y L
2
, y se represenLa
por L
1
L
2
al lengua[e asl denldo:

L
1
L
2
= { xy ] x # L
1
AND y # L
2
}

! Ls el con[unLo de palabras formado por la concaLenacln de palabras de L
1

con palabras de L
2
! uenlcln vllda para lengua[es con algun elemenLo.
! ? con el lengua[e vaclo: * L = L * = *
! Ll elemenLo neuLro es [\}: [\}.L = L. [\} = L
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


19
2
Concatenac|n de |engua[es
rop|edades
! Cperacln cerrada
! ropledad Asoclauva
! Con elemenLo neuLro
! ropledad dlsLrlbuuva respecLo a la unln.

A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


20
3
8|no|de ||bre
! La concaLenacln (monolde) de lengua[es y la unln (monolde) de
lengua[es consuLuyen un b|no|de
! Los slmbolos de ! se pueden conslderar con[unLos de una sola
palabra
! Con !, la unln y la concaLenacln se puede formar cualquler
lengua[e sobre dlcho !. LxcepLo * y [%}.

Ll alfabeLo ! es un con[unLo de generadores para el con[unLo
L " L es e| 8INCIDL LI8kL (operac|ones U y ") generado por !
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


21
4
otenc|a de un |engua[e
! Ls la reduccln de la concaLenacln a los casos que se reeren a
un mlsmo lengua[e
! poLencla ,./0,12 de un lengua[e al resulLado de concaLenar ese
lengua[e conslgo mlsmo , veces
! concaLenacln es asoclauva " no especlcar el orden
! L
l
= L L L ... L , , veces
! Se dene L
1
= L
! Se cumple:
L
1 + l
= L L
l
= L
l
L (l>0)
L
[ + l
= L
l
L
[
(l, [ >0)
! Sl se dene L
0
= [ % }, enLonces (l,0) (l, [ , 0)
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


22
S
C|ausura o c|erre pos|nvo
Se represenLa como L
+
y es

el lengua[e
obLenldo unlendo el lengua[e L con
Lodas sus poLenclas poslbles excepLo L
0
L
+
= L
i
i=1
!
!
Ninguna clausura positiva contiene a %, si %-L
Como ! es un lenguaje sobre !, la clausura positiva de ! ser:
!
+
= !
i
i=1
"
!
=W !
( )
# !
{ }
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


23
6
Iterac|n, c|ausura o c|erre
! Se cumple:
L* = L
+
U {%}
L
+
= L* L = L L*
! Como ! es un lengua[e sobre !, se le puede apllcar el *:
!* = W (!)
Se represenLa como L
*
y es

el lengua[e
obLenldo unlendo el lengua[e L con
Lodas sus poLenclas poslbles.

* es el operador unarlo de kleene
!
!
=
=
0 i
i *
L L
1oda clausura conuene a %
El lenguaje universal es !*
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


24
7
keex|n de |engua[e
Se llama lengua[e ree[o o lnverso de L y se
represenLa por L
-1
al lengua[e:
L
-1
= {x
-1
| x # L}
es declr, al lengua[e formado por Lodas las
palabras ree[as de L
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


uenlclones
Cperaclones
8eglas de derlvacln
23
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


D.5E(3325&%+#
26
Sea ! un alfabeLo
! Se llama produccln a un par ordenado ( !#"#$#) donde !#"#
$ # !*
! # !*, es la parLe lzqulerda de la produccln e
$ # !*, la parLe derecha de la produccln
! Se represenLa como: !#334#$#
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%.2F)32G&#E2.%31)#
27
! Sea ! un alfabeLo
! Sea ( !"#$#) una produccln sobre palabras de !, x::=y
! Sean v y w dos palabras sobre ! (l.e v, w # !*)

Se dlce
56#70#879,:2;,<=#8,97;>2#87#:?
5:#@9A8B;7#8,97;>217=>7#6?##v . w
#56#07#978B;7#8,97;>217=>7#2#:?#
sl / dos palabras z , u # !* Lales que v = zxu y w = zyu
CCkCLAkIC
Sl x ::= y es una produccln sobre ! " x . y
(una regla de escrlLura es una derlvacln dlrecLa)
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%.2F)32G&#E2.%31)#
28
! Sea ! el alfabeLo casLellano de las leLras mayusculas
y ML::=8A una produccln sobre !
CA8ALLC es derlvacln dlrecLa de CAMLLLC
(CAMLLLC produce dlrecLamenLe CA8ALLC)
! ? con la produccln CA::=L sobre !
L8A es derlvacln dlrecLa de CA8A
L[emplos
En el castellano no son as las cosas, existen las races.
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%.2F)32G&#E2.%31)#
29
Ln un con[unLo de producclones
! Sea ! un alfabeLo y un con[unLo de
producclones sobre !
! Sean v y w dos palabras sobre !, v, w #!*
Se dlce que w es derlvacln dlrecLa de v"
v produce dlrecLamenLe w"
w se reduce dlrecLamenLe a v"
v . w
sl / dos palabras z, u #!* Lales que v = zxu y w = zyu y se cumple (x::=y) #
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%.2F)32G&#
30
! Sea ! un alfabeLo y un con[unLo de producclones sobre !
! Sean : y 6 dos palabras sobre !, :, 6 #!*
Se dlce que w es derlvacln de v"
v produce w"
w se reduce a v"
v + . w


u
0
. u
1


u
1
. u
2
........
u
n-1
. u
n
w = u
n
sl / una secuencla nlLa de palabras, u
0
, u
1
, u
2
, ...u
n
(n>0) #!*
Lales que v = u
0
Derivacin de longitud n
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


>%6)32G&#E%#HI(%#
31
! Sea ! un alfabeLo y un con[unLo de producclones sobre !
! Sean v
y
w dos palabras sobre !, es declr v, w #!*
Se dlce que exlsLe una relacln de 1hue enLre v y w y se represenLa
por v *. w sl se verlca que:
v +. w
v = w
rop|edades
! 8eexlva
! 1ransluva
! SlmeLrlca (en general nC se cumple)
o / una der|vac|n de |ong|tud $ o
son |gua|es
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


->:?JHKL:<#4=>?:$7<#
32
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


uenlclones
!erarqula de Chomsky
rboles de derlvacln
33
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


MN(O#%+#(&)#'.)/0123)P#
34
una gramuca descrlbe la esLrucLura de
las frases y de las palabras de un
lengua[e y se apllca por lgual a:
! Las lenguas naLurales humanas
! Lengua[es de programacln.
una gramuca es un enLe formal" para
especlcar de manera nlLa el con[unLo
de cadenas de slmbolos que consuLuyen
un lengua[e.
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)#E%6#L)+1%66)&5#
33
Una gramtica del castellano como diagrama sintctico
Cracln
lnomlnal lverbal ComplemenLo
aruculo verbo susLanuvo
Comple_clrc
aruculo susLanuvo
lnomlnal
La sangre corre por el rlo
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


>%'6)+#E%#B.5E(332G&#
36
<Cracln>::= <lnomlnal> <lverbal> | <lnomlnal> <lverbal><ComplemenLo>
<lnomlnal>::= <SusLanuvo> | <nomr> | <Aruculo> <SusLanuvo>
| <Aruculo> <SusLanuvo> <Ad[euvo>
| <Aruculo> <SusLanuvo> <Ad[euvo>
| < lnomlnal >de < lnomlnal >
<lverbal>::= <verb> | <verb> <Adverblo>
<ComplemenLo>::=<Comulr> |<Comln> |<ComClr> | <Comulr> <Comln> <ComClr>
<Comulr>::= <lnomlnal> , <Comln>::= a <lnomlnal> | para <lnomlnal> | ....
<ComClr> ::= en <lnomlnal> | desde <lnomlnal> | cuando <lnomlnal> | ....
uonde: <SusLanuvo>, <Ad[euvo>, <Adverblo>, <Aruculo>, <nomr>, <verbo>, eLc Loman
como valores palabras proplas de esLas caLegorlas gramaucales
una gramuca del casLellano en noLacln de 8ackus
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%A2&232G&#
37
Como se determina (define) una gramtica.
Es una cudrupla: (!
T
, !
N
, S, P), !
T
y !
N
son alfabetos:

!
T
: Alfabeto de smbolos terminales.
Todas las cadenas del lenguaje representado por la G (L(G))
estn formadas con smbolos de este alfabeto.

!
N
: Alfabeto de smbolos No Terminales.
Conjunto de smbolos auxiliares introducidos como elementos
auxiliares para la definicin de G pero que no figuran en las
cadenas de L(G).

S: Axioma o smbolo destacado.
Es un smbolo NT a partir del que se comienzan a aplicar las
reglas de P.

P: conjunto de reglas de produccin: u::=v donde u#!
+
y v#!*
u = xAy tal que x, y #!* y A #!
N.
.

A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


G = ({0,1}, {N,C}, N, P)

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

@%A2&232G&#
38
!
T
: Alfabeto de
smbolos terminales
!
T
: Alfabeto de smbolos
NO terminales
Axioma
Producciones
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


@%A2&232G&#
39
Se cumple enLre los alfabeLos de C:
!
1
+ !
N
= ! AlfabeLo o vocabularlo de C
!
1
0 !
N
= * (son dls[unLos)
Notac|n de 8ackus: Sl u::=v y u::= w son dos reglas de produccln
de , enLonces se puede escrlblr u ::= v | w

Se denomlna noLacln 8NI: CA912# DA912E# 87# F2;GB0# A# CA912
DA912E#87#F2;GB0.D2B9##

L[emplo:
sea C = ([0,1,2,3,4,3,6,7,8,9}, [n,u}, n,)
= [ n::= nu (u , u::= 0(1(2(3(4(3(6(7(8(9}
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#+%&1%&32)6#
40
Sea una H, sea !## !*, es declr sea x # ( !1 u !n )*, x
se denomlna forma sentenc|a| de G sl se verlca:
S *. x
es declr, que exlsLe una %&'()*+$!,&!-./&!enLre el axloma y !.
Sl x #!
1
*
se dlce que x es una Sentenc|a o |nstrucc|n de|
|engua[e descr|to por G

A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


$%&'()*%#)+532)E5#)#(&)#'.)/0123)#
41
Sea la gramuca:
C1 = (!1, !n, S, )

Se llama:
lengua[e asoclado a C1
lengua[e generado por C1
o lengua[e descrlLo por C1


al con[unLo de Lodas las senLenclas (palabras) generadas
por C1, es declr:

L(C1) = [x | S # *x, x # !*1}
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


>%3(.+2F2E)E#
42
Sea H"#
! una H se llama recurs|va en 0, I#!"
DJ
, sl se cumple:
0!1#!2!0!3

Sl !#4#$#'I#K###I#$( se dlce que H es recurs|va a |zqu|erdas
Sl $#4#$#'I#K##!#I( se dlce que C es recurs|va a derechas
! una regla de produccln es recurslva sl uene la forma:
0!445!2!0!3!!
! Sl un lengua[e es lnnlLo, la gramuca que lo represenLa uene
que ser recurslva
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


uenlclones
!erarqula de Chomsky
rboles de derlvacln
43
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


;%.).Q(R)#E%#LI5/+S,#
44
C 1lC 3
C 1lC 2
C 1lC 1
C 1lC 0
C3 ) C2 ) C1 ) C0
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#T#
43
C= (!
1
, !
n
, S, )
!
1
+!
n
=!, alfabeLo gramuca,
!
1
0!
n
= *
C0
no 8esLrlngldas
o con LsLrucLura de lrase
Con estructura de frases:
(xAy::=xvy) # , donde:
x,y # !
*
, A # !
n
, v#!
*
Ln xAy ::= xvy cuando v=%,
xAy ::= xy reglas compresoras
u#!
+

v#!
*

u ::= v
nlca resLrlccln: %::= v -
lorma senLenclal:
u = xAy, x,y#!*, A#!
n

L[emplo:
C= [(0,1), (S,A), S, }, donde:
=[S.0S0A, SA.AS, 0A#1}
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#T#
46
C'= [a,b},[A,8.C,x,?},A,')
' = [A::= aA8C / abC
C8::=k8, k8::=k
k::=8, 8::=8C
b8::=bb
bC::=b}

C= ([a,b},[A,8.C},A,)
= [A::= aA8C / abC
C8::= 8C
b8::=bb
bC::=b}
! Los lengua[es que son represenLados por C0 se llaman lengua[es
sln resLrlcclones
! Chomsky 1939. 1odo L(C0) puede ser descrlLo por una C0 con
esLrucLura de frases.
L[emp|o
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#U#
47
G= (!
1
, !
N
, S, )
!
1
+!
N
=!, a|fabeto gramnca,
!
1
0!
N
= *
C1
Senslbles al ConLexLo
x,y#!*, A#!
n

v#!
+
# no permlLe reglas compresoras
Lxcepcln: (S::= %)#
xAy ::= xvy
L[emplo:
C= ([a,b,c}, [A,8},A, },
=[A ::= Aaa | a,
aA ::= a8 | a,
aCCc ::= aAaCc,
C ::= c}
Los Lenguajes representados por una gramtica de Tipo 1 se llaman lenguajes dependientes
del contexto o lenguajes sensibles al contexto (se puede cambiar A por v, siempre en el
contexto x...y)
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#U#
48
L[emplo de C que sl es C1
Los lengua[es que son represenLados por C1 se llaman
Lengua[es sens|b|es a| contexto
donde
%#L(C1) Sll (S::=%)#
L[emplo de C que no es C1
C= ([a,b}, [S}, S, ) ,
= [ S::= aaaaSbbbb,
aSb::= ab}
C= ([a,b}, [S}, S, ) ,
= [ S::= aaaaSbbbb,
aSb::= abb}
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#U"#85#E%3.%32/2%&15#
49
rop|edad de NC DLCkLCIMILN1C de |as G1
Las cadenas que se obuenen en cualquler derlvacln de una C1 son de
longlLud no decreclenLe, es declr:
u . v " (v(,(u(
La longlLud de la parLe derecha de la produccln es mayor o lgual a la longlLud
de la parLe lzqulerda
Demostrac|n
1A2 . 132
donde 3#(!
1
+!
n1
)
+
por denlcln de C1 (no compresoras)

es declr, 3 4 % slempre, lo que lmpllca(3(, 1
y como (A(= 1 como mlnlmo, queda demosLrado
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#V#
30
G= (!
T
, !
N
, S, P)
!
T
+!
N
=!, alfabeto gramtica,
!
T
0!
N
= *
G2
De Contexto Libre
v#!*
A#!
n

A ::= v
L[emplo:
C= ([0,1,2,3,4,3,6,7,8,9},[n,u},S, )
=[n . un | u,
u . 0 | 1 | 2 | 3 | 4 | 3 | 6 | 7 | 8 | 9}
(S::= %) # y (A::= %) -
(algorlLmo llmpleza reglas nC generauvas)
r # se caracLerlzan por
Lener un slo slmbolo n1 en
su parLe lzqulerda
Contexto L|bre: Se puede camblar A por v, en cualquler conLexLo
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#V#
31
Sl % # L(C2).#
Los lengua[es que son represenLados por C2 se
llaman Lengua[es no sens|b|es a| contexto o de
contexto ||bre
' L(C2) / L(C2') sln reglas A::= % (A 4 S)
puede apllcarse el algorlLmo de ellmlnacln
reglas nC generauvas.
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#W#
32
G= (!
1
, !
N
, S, )
!
1
+!
N
=!, a|fabeto gramnca,
!
1
0!
N
= *
C3
Cramucas 8egulares
G3 L|nea|es por |a Izda.
A::= a
A::= V a
S::= %
G3 L|nea|es por |a Drcha.
A::= a
A::= a V
S::= %
a # !
1
A,v # !
n
S es axloma
r # un slo slmbolo n1 en
su parLe lzda y su parLe dcha
comlenza por un 1 seguldo o
no de n1 (al reves en llneal
derecha)
L[emplo:
C= [(a,b), (S,A),S, },
=[(S . aS, S . aA, A. bA, A . b)}
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


H2B5#W#
33
Los lengua[es que son represenLados por C3 se
llaman |engua[es regu|ares
' L(C3) / L(C3') sln reglas A::= % (A 4 S)
Sl % #L(C3).
ver algorlLmo ellmlnacln reglas nC generauvas.
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


;%.).Q(R)#E%#LI5/+S,"#>%+(/%&#
34
G3 L|nea|es por |a
Izda.
A::= a
A::= V a
S::= %
G3 L|nea|es por |a
Drcha.
A::= a
A::= a V
S::= %
a#!
1
A,v#!
n
G0. No kestr|ng|das o con Lstructura de Irase G1. Sens|b|es a| Contexto
G2. De Contexto L|bre G3. Gramncas kegu|ares
v # !*
A # !
n

A ::= v
x, y #!*, A#!
n

v#!
+
# no permlLe reglas compresoras
Lxcepcln: (S::= %)#
xAy ::= xvy
u#!
+

v#!
*

u ::= v
nlca resLrlccln: %::= v -
G3 ) G2 ) G1 ) G0
Con Lstructura De Irases:
(xAy::=xvy) # , donde: x, y # !
*
, A # !
n
, v#!
*

Sl v=% # xAy ::= xy reglas compresoras
(S::= %) # y (A::= %) -
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
33
uada una gramuca llneal por la derecha cualqulera,
exlsLe oLra llneal por la lzqulerda equlvalenLe y
vlceversa.
uos gramucas son equlvalenLes sl represenLan el
mlsmo lengua[e.
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
36
ALCC8l1MC: 3 ASCS.
ASC 1.
ConsLrulr una gramuca equlvalenLe que no sea recurslva en el axloma:
1. se anade un nuevo slmbolo en el alfabeLo !
n
, 8
2. ' S::= x, donde x#!
+
, se anade una regla 8::= x
3. Se Lransforman las reglas A::= a S (que desaparecen) en reglas del
upo A::= a 8.
4. Las reglas upo S::= % no se ven afecLadas por esLe algorlLmo.
Nota: las reglas S ::= x, x # !
+
, no desaparecen
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
37
ALCC8l1MC: 3 ASCS.
ASC 1.
ConsLrulr una gramuca equlvalenLe que no sea recurslva en el axloma:
C1 = ([a,b}, [S, A}, S, }

= [ S ::= bA,
A ::= aS | a }
C2 = ([a,b}, [S, A, 8}, S, }

= [ S ::= bA,
A ::= a8 | a
8 ::= bA}
ASC 1
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
38
ALCC8l1MC: 3 ASCS.
ASC 2.
ConsLruccln de un grafo dlrlgldo a parur de la gramuca.

a) numero de nodos = C(!
n
) +1, cada nodo euqueLado con slmbolos de
!
n
y oLro con %

b) cada A::=a 8 #

c) cada A::=a #

d) sl S::= % #

A B
a
A %
S %
a
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
39
ALCC8l1MC: 3 ASCS.
ASC 2.
ConsLruccln de un grafo dlrlgldo a parur de la gramuca.
C2 = ([a,b}, [S, A, 8}, S, }

= [ S ::= bA,
A ::= a8 | a
8 ::= bA}
paso 2
S
A
%
B
b
a
b
a
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o



1ransformac|n de| grafo d|r|g|do anter|or:
a) lnLercamblar euqueLas de S y %
b) lnverur senudo de Lodos arcos
c) deshacer el camlno y generar las nuevas reglas
" lnLerpreLar el grafo para obLener la C3Ll
equlvalenLe

-.)/0123)+#%Q(2F)6%&1%+#
60
A B
a
% A
% S
S::= %
ALCC8l1MC: 3 ASCS.
ASC 3.
Se lnLercamblan las euqueLas y se consLruye un nuevo grafo.
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
61
ALCC8l1MC: 3 ASCS.
ASC 3.
Se lnLercamblan las euqueLas y se consLruye un nuevo grafo.
ASC 3
S
A
%
8
b
a
b
a
%
A
B
b
a
b
a
S
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
62
ALCC8l1MC: 3 ASCS.
A parur del grafo, se obuene la gramuca equlvalenLe a lzqulerdas.
%
A
8
b
a
b
a
S
C3 = ([a,b}, [S, A, 8}, S, }

= [ S ::= Aa,
A ::= 8b | b
8 ::= Aa}
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#%Q(2F)6%&1%+#
63
ALCC8l1MC: 3 ASCS.
Comprobemos que las gramucas son equlvalenLes...
C1 = ([a,b}, [S, A}, S, }

= [ S ::= bA,
A ::= aS | a }
C3 = ([a,b}, [S, A, 8}, S, }

= [ S ::= Aa,
A ::= 8b | b
8 ::= Aa}
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


uenlclones
!erarqula de Chomsky
rboles de derlvacln
64
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
! A las derlvaclones de las H# L@A# )"# *# $# M# les corresponde un
rbol de derlvacln equlvalenLe, Lamblen llamado

"rbo| s|ntcnco"
"parse tree"
! 8epresenLa las producclones apllcadas duranLe la generacln
de una sentenc|a, es declr, su esLrucLura de acuerdo con la C
63
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
Ls un rbol 6%,&$(,6 y &78/&9(,6 que se consLruye:
! La ralz se denoLa por el axloma de C (S hablLualmenLe)
! una der|vac|n d|recta se represenLa por un con[unLo de
%(:(;!8/&!;('&$!,&!/$!$6,6!,(,6!<=(%9&!*#8/*&%,(!,&!'(!>?!
! Apllcar una regla un slmbolo de la parLe lzq. queda susuLuldo
por una palabra B de la parLe dcha. or cada uno de los
slmbolos de B se dlbu[a una rama que sale del n1 a ese
slmbolo:
66
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
67
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
Ln una C1, adems, se debe conservar el conLexLo. ara cada rama:
! el nodo de paruda se llama padre del nodo nal
! el nodo nal es h|[o del nodo padre
! dos nodos hl[os del mlsmo padre se llaman hermanos
! un nodo es ascend|ente de oLro sl es su padre o ascendlenLe de su
padre
! un nodo es descend|ente de oLro sl es su hl[o o descendlenLe de sus
hl[os
68
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
! A lo largo del proceso de consLruccln del rbol, los nodos nales
de cada paso suceslvo, leldos de lzqda. a dcha. dan la @6%:(
;&$9&$)*('!obLenlda por la derlvacln represenLada por el rbol.
! Ll )6$A/$96! ,&! '(;! .6A(;! ,&'! B%C6'! (nodos denoLados por slmbolos
Lermlnales o %) leldos de lzqda. a dcha. nos dan la ;&$9&$)*(
generada por la derlvacln
69
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
70
Forma Sentencial:
E.E
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
71
Sentencia: 1.2
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
uada la C = ([a,b}, [A,S}, S, [S::= aAS | a, A::= SbA |
SS | ba}). Pallar un rbol de derlvacln para una
senLencla de 6 leLras.

72
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
uada la C = ([a,b}, [A,S}, S, [S::= aAS | a, A::= SbA | SS | ba}). Pallar un
rbol de derlvacln para una senLencla de 6 leLras.
A
S A
S
S
a a a a b b
A
S S
S
S
a a a a a a
A S
b
Sera de 7 letras
73
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
uada la C = ([0,1,2,3,4,3,6,7,8,9}, [n,C}, n, [n ::= nC | C, C ::= 0|1|2|3|4|
3|6|7|8|9}). Pallar un rbol de derlvacln para n . 233
N
N C
N
2
C
C
3 5
74
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


J.C56%+#E%#E%.2F)32G&#
uada la C = ([0,1}, [A,8}, A, [A::= 1A | C8, 8::= 08 | 0}) una de cuyas derlvaclones
vlldas es: A . 1A . 1C8 . 1008 . 1000. Pallar un rbol de derlvacln para A
. 1000
A
B
A
1
B
0 0 0
73
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


<(C0.C56%+#E%#E%.2F)32G&#
Dado un rbol A correspondiente a una
derivacin, se llama subrbol de A al
rbol
! cuya raz es un nodo cualquiera de A,
! c u y o s n o d o s s o n t o d o s l o s
descendientes
de la raz del subrbol en A
! y cuyas ramas son todas las que unen
dichos nodos entre si en A.
A
B
A
1
B
0 0 0
subrbol
76
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


<(C0.C56%+#E%#E%.2F)32G&#
1eorema
Las ho[as de un subrbol, leldas de lzda. a dcha., forman
una frase respecLo al slmbolo n1 ralz del subrbol
A
S A
S
S
a a a a b b
abba es una frase de la forma
sentencial aabbaa respecto
del smbolo A
77
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


:/C2'X%E)E#
! ConcepLo relaclonado con el de rbol de derlvacln:
! Sl una senLencla puede obLenerse en una C por medlo de
dos o ms rboles de derlvacln dlferenLes, |a sentenc|a
es amb|gua
! una G es amb|gua sl conuene a| menos una sentenc|a
amb|gua

78
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


:/C2'X%E)E#
Lx|sten 3 n|ve|es de amb|gedad:
! D&$9&$)*(: una senLencla es amblgua sl puede
obLenerse por medlo de dos o ms rboles
de derlvacln dlferenLes
e[: C = ([1}, [A,8}, A, [A::= 18 | 11, 8::= 1})
! E%(:B7)(3 es amblgua sl conuene al menos una
senLencla amblgua, e[: la C anLerlor
! F&$G/(A&!*$.&%&$9&:&$9&!(:C*G/6: sl Lodas las
gramucas que lo generan son amblgua.
A
1
B
1
A
1 1
79
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


:/C2'X%E)E#
! Aunque una C sea amblgua, es poslble que el lengua[e que descrlbe no
sea amblguo [lloyd 1962] " es poslble enconLrar una C equlvalenLe
que no lo sea
! LxlsLen lengua[es para los que nC es poslble enconLrar C no amblguas
" Lengua[es lnherenLemenLe Amblguos [Cross 1964]
! La propledad de amblguedad es lndecldlble. 1an solo es poslble
enconLrar condlclones suclenLes que aseguren que una C es no
amblgua
! Indec|d|b|e: no exlsLe un algorlLmo que acepLe una C y deLermlne con
cerLeza y en un uempo nlLo sl una C es amblgua o no.
80
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


:/C2'X%E)E#
Lengua[es Inherentemente Amb|guos: para los que nC es poslble
enconLrar C no amblguas
L[emp|o
L = [[a
n
b
m
c
m
d
n
}+[a
n
b
n
c
m
d
m
} / m,n,1}

L[emp|o
L = [11} nC es lnherenLemenLe amblguo
C = ([1}, [A,8}, A, [A::= 18 / 11, 8::= 1})
C' = ([1}, [A}, A, [A::=11}) --> Cramuca nC amblgua
L(C)=L(C')
81
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


:/C2'X%E)E#
uada la C = ([a,b}, [A,8,S}, S, )
= [
S::= bA | a8
A::= bAA | a | aS
8 ::= b |8S | a88}
demosLrar que es una C amblgua al serlo la senLencla
aabbab"
82
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


:/C2'X%E)E#
uada la C = ([a,b}, [A,8,S}, S, )
= [
S::= bA | a8, A::= bAA | a | aS, 8 ::= b | 8S | a88}
demosLrar que es una C amblgua al serlo la senLencla aabbab"
B
B
B
S
a a
B
S
A
b b a b
B
B
S
B
S
B
a a
b b a b
83
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


->:?JHKL:<#4=>?:$7<#
Segunda parLe
84
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


Cramucas 1lpo 2
Cramucas blen formadas
lormas normales
83
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#K&E%B%&E2%&1%+#E%6#L5&1%Y15#
Son las gramucas de upo 2 en la [erarqula de Chomsky.
ke|evanc|a
! son las empleadas en la uenlcln de Lengua[es de
rogramacln y en la compllacln de los mlsmos

generador de cdlgo . 1raducLor
Compllador
anallzador . acepLador de la C
explorador (Al)
reconocedor (A)
86
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#K&E%B%&E2%&1%+#E%6#L5&1%Y15#
A los lengua[es generados por gramucas del upo 2 de la
[erarqula de Chomsky se les denomlna Lengua[es
|ndepend|entes de| contexto o |engua[es de contexto ||bre
! Se represenLan como L(C2)
! LxlsLen algorlLmos que permlLen reconocer
sl un L(C2) es vaclo, nlLo o lnnlLo
87
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#K&E%B%&E2%&1%+#E%6#L5&1%Y15#
uada una C, el Lengua[e que genera, es vaclo o no?:
Sea G2, m = C(!
n1
), L(G2) 4 * sl / x # L(C2) Lal que x puede generarse con un rbol de
derlvacln en el que Lodos los camlnos uenen longlLud 5 m
Se generan Lodos los rboles de derlvacln con camlnos 5 m = C(!
n1
) medlanLe el
algorlLmo:
a. con[unLo de rboles con longlLud 0 (un rbol con S como ralz y sln ramas)
b. a parur del con[unLo de rboles de longlLud n, generamos el con[unLo de
longlLud n+1 < m +1 apllcando al con[unLo de paruda una produccln que no
haga dupllcarse algun n1 en el camlno conslderado
c. se apllca el paso b) recurslvamenLe hasLa que no puedan generarse ms rboles
con camlnos de longlLud 5 m. Al ser m y el numero de reglas de nlLo " el
algorlLmo Lermlna
L(G2) = * s| n|nguno de |os rbo|es genera una sentenc|a
88
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#K&E%B%&E2%&1%+#E%6#L5&1%Y15#
L[emplo de L(C2) = *
Sea C = ([a,b}, [A,8,C,S}, S, )
= [
S ::= a8 | aA
A ::= 8 | ab8
8 ::= bC}
m=C(!
N1
) = 4
1. m=0
S
3. m=2
S S
a
8
A
a
S S
a
8
A
a
S
A
a
8
b
b
a
8
C
No se generan sentencias y salen NT ya obtenidos
Lenguaje vaco
2. m=1
4. m=3
89
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#K&E%B%&E2%&1%+#E%6#L5&1%Y15#
Sl L(C2) es no vaclo, comprobar sl L(G2) = &
! Se consLruye un grafo cuyos nodos esLn euqueLados con los
slmbolos de (!
n1
) medlanLe el algorlLmo:

a) sl / una produccln A::= 1 8 2, se crea un arco de A a 8
donde A,8 # !
n1
y 1,2 # !*
b) sl no exlsLen clclos en el grafo el L(C2) = nlLo
c) L(C2) = & sl exlsLen clclos acceslbles desde el axloma que
corresponden a derlvaclones de la forma A .+ 1 A 2,
donde |1|+ |2| >0 (que no sean % las dos a la vez).

L(G2) 4 & s| no hay c|c|os en e| grafo
90
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#K&E%B%&E2%&1%+#E%6#L5&1%Y15#
L[emplo de L(G2) = &
Sea C = ([a,b,c}, [A,8,C,S}, S, )
= [
S ::= a8 / aA
A ::= ab8
8 ::= bC / aA
C ::= c }
S
C
A
8
L lnnlLo
91
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


Cramucas 1lpo 2
Cramucas blen formadas
lormas normales
92
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
93
1ransformacln de una C dada en oLra equlvalenLe cuyas reglas de
produccln esLen en un formaLo carenLe de lmperfecclones:
1. L|mp|eza de Gramncas
a. 8eglas lnnecesarlas
b. Slmbolos lnacceslbles
c. 8eglas Superuas
2. L||m|nac|n de s|mbo|os no generanvos
3. L||m|nac|n de reg|as no generanvas
4. L||m|nac|n de reg|as de redenom|nac|n
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


1ransformacln de una C dada en oLra equlvalenLe cuyas reglas de
produccln esLen en un formaLo carenLe de lmperfecclones:
1. L|mp|eza de Gramncas
a. 8eglas lnnecesarlas
b. Slmbolos lnacceslbles
c. 8eglas Superuas
2. L||m|nac|n de s|mbo|os no generanvos
3. L||m|nac|n de reg|as no generanvas
4. L||m|nac|n de reg|as de redenom|nac|n
-.)/0123)+#Z2%&#45./)E)+#
C
r
a
m

u
c
a

L
l
m
p
l
a

C
r
a
m

u
c
a

8
e
d
u
c
l
d
a

C
r
a
m

u
c
a

8
l
e
n

l
o
r
m
a
d
a

94
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
1. L|mp|eza de Gramncas
a. keg|as Innecesar|as: las reglas A::= A # son lnnecesarlas y hacen que C sea
amblgua " ellmlnarlas
93
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
1. L|mp|eza de Gramncas
b. S|mbo|os Inacces|b|es: sea u::= x #, donde u#!
n
4 S y no aparece en la
parLe derecha de nlnguna oLra regla de produccln, se dlce que u es
lnacceslble.
1odo slmbolo u#!
n
no lnacceslble debe cumpllr S *. xuy.
H'*:*$()*+$!,&!;I:C6'6;!*$())&;*C'&;4!
1. Pacer una llsLa con Lodos los slmbolos de la gramuca (1 y n1)
2. Marcar el axloma de la gramuca.
3. uado !I$# 334# !B$ # Marcar Lodos los slmbolos que aparecen en la
cadena B de la parLe derecha.
4. Sl en el paso anLerlor se ha marcado algun slmbolo, se replLe de nuevo
dlcho paso Lenlendo en cuenLa los slmbolos marcados. Ln caso conLrarlo,
n del algorlLmo.

96
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


4. [a, b, c, S, A, 8, C}
3. [a, b, c, S, A, 8, C}
6. [a, b, c, S, A, 8, C}
1. [a, b, c, S, A, 8, C}

3. [a, b, c, S, A, 8, C}
-.)/0123)+#Z2%&#45./)E)+#
1. L|mp|eza de Gramncas
b. S|mbo|os Inacces|b|es
L[emp|o
sea la C = ([a, b, c}, [S,A,8,C}, S, ),
donde = [S::= aA
A ::= 8c
8::= bA
C::= c}

Sln camblos.
lln algorlLmo
C es un s|mbo|o INACCLSI8LL!!
2. [a, b, c, S, A, 8, C}
97
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
1. L|mp|eza de Gramncas
c. keg|as Superuas: son aquellas que no conLrlbuyen a la formacln
de palabras x #!
1
*.
LsLas reglas conuene algun s|mbo|o No 1erm|na| no generanvo.
1odo slmbolo no superuo debe cumpllr u +.L, Lal que L #!
1
*

A|gor|tmo (es un algorlLmo recurslvo de marcado)
a. marcar los n1 para los que exlsLe una regla u ::= x donde x #!* (es una
cadena de 1 o %, o en pasadas suceslvas conuene n1 marcados)
b. sl Lodos los n1 esLn marcados " no exlsLen slmbolos superuos y n
c. sl la uluma vez que se pas por el paso a) se marc un n1, volver al paso a).
d. Lodo A #!
n1
no marcado es superuo.
98
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


#-.)/0123)+#Z2%&#45./)E)+#
1. L|mp|eza de Gramncas
c. keg|as Supruas:
e[emplo: sea C= ([e,f}, [S,A,8,C,u}, S, )
donde = [
S::= 8e
A::= Ae |e
8::= Ce | Af
C::= Cf
u::= f}
1 pasada:
u::= f y A::= e
D
A
2 pasada:
8::= Af
S
8
3 pasada:
S::= 8e
Ls una cadena
de 1ermlnales
Los no1ermlnales
esLn marcados.
99
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


#-.)/0123)+#Z2%&#45./)E)+#
1. L|mp|eza de Gramncas
c. keg|as Supruas:
e[emplo: sea C= ([e,f}, [S,A,8,C,u}, S, )
donde = [
S::= 8e
A::= Ae |e
8::= Ce | Af
C::= Cf
u::= f}
1 pasada:
u::= f y A::= e
D
A
2 pasada:
8::= Af
S
8
3 pasada:
S::= 8e

Sln marcar: C, que se


ellmlna, asl como sus
reglas
100
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


1ransformacln de una C dada en oLra equlvalenLe cuyas reglas de
produccln esLen en un formaLo carenLe de lmperfecclones:
1. L|mp|eza de Gramncas
a. 8eglas lnnecesarlas
b. Slmbolos lnacceslbles
c. 8eglas Superuas
2. L||m|nac|n de s|mbo|os no generanvos
3. L||m|nac|n de reg|as no generanvas
4. L||m|nac|n de reg|as de redenom|nac|n
-.)/0123)+#Z2%&#45./)E)+#
C
r
a
m

u
c
a

L
l
m
p
l
a

C
r
a
m

u
c
a

8
e
d
u
c
l
d
a

C
r
a
m

u
c
a

8
l
e
n

l
o
r
m
a
d
a

101
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
2. L||m|nac|n de s|mbo|os no generanvos:
Sea C2 = (!
1
, !
n
, S, ),

'A#!
N
consLrulremos la gramuca
C(A), donde A es el axloma. Sl L(G(A))= * " A es s|mbo|o
no generanvo y se puede ellmlnar, asl como Lodas las
reglas que lo conLengan, obLenlendose oLra C2
equlvalenLe.

102
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
3. L||m|nac|n de reg|as no generanvas: son A::= % (A4S)
A|gor|tmo:
1. Lllmlnar de la Cramuca las regla de la forma u::= %
2. or cada regla de la gramuca donde u aparezca en la
parLe dcha., v::=xuy, se anade la regla v::=xy (a menos
que ya exlsLe).
3. 8epeur 2. hasLa que no quede nlnguna regla de la forma
u::= %, o que slo quede S::= %.
103
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


3. L||m|nac|n de reg|as no generanvas: son A::= % (A4S)
L[emplo:
C = ([a, b}, [S, , C}, S, r)
r = [ S ::= C | aSb |
::= aC | a
C ::= Cb | % }

LLIMINAkLA
-.)/0123)+#Z2%&#45./)E)+#
Regla NO generativa:
Q ::= %
104
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


3. L||m|nac|n de reg|as no generanvas: son A::= % (A4S)
L[emplo:
C = ([a, b}, [S, , C}, S, r)
r = [ S ::= C | aSb |
::= aC | a
C ::= Cb | % }

-.)/0123)+#Z2%&#45./)E)+#
C' = ([a, b}, [S, , C}, S, r)
r = [ S ::= C | aSb |
::= aC | a | a
C ::= Cb | b }
Lllmlnar la 8egla
no generauva
103
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


1ransformacln de una C dada en oLra equlvalenLe cuyas reglas de
produccln esLen en un formaLo carenLe de lmperfecclones:
1. L|mp|eza de Gramncas
a. 8eglas lnnecesarlas
b. Slmbolos lnacceslbles
c. 8eglas Superuas
2. L||m|nac|n de s|mbo|os no generanvos
3. L||m|nac|n de reg|as no generanvas
4. L||m|nac|n de reg|as de redenom|nac|n
-.)/0123)+#Z2%&#45./)E)+#
C
r
a
m

u
c
a

L
l
m
p
l
a

C
r
a
m

u
c
a

8
e
d
u
c
l
d
a

C
r
a
m

u
c
a

8
l
e
n

l
o
r
m
a
d
a

106
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


#-.)/0123)+#Z2%&#45./)E)+#
4. L||m|nac|n de reg|as de redenom|nac|n: son reglas del upo A::=8
(donde A = 8)
A|gor|tmo
1. Lllmlnar de la Cramuca las regla de la forma u::= v
2. or cada regla de la forma v::=x, anadlr u::=x (sl no
LxlsLe).
3. 8epeur 2. hasLa que no quede nlnguna regla de
redenomlnacln.
107
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
4. L||m|nac|n de reg|as de redenom|nac|n: son reglas del upo A::=8
(donde A = 8)

L[emplo:

C = ([a, b}, [S, , C}, S, r)

r = [ S ::= C | aSb |
::= aC | a | a
C ::= Cb | b }

LLIMINAkLA
8egla de
8edenomlnacln:
S ::=
108
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


-.)/0123)+#Z2%&#45./)E)+#
4. L||m|nac|n de reg|as de redenom|nac|n: son reglas del upo A::=8
(donde A = 8)

L[emplo:

C = ([a, b}, [S, , C}, S, r)

r = [ S ::= C | aSb |
::= aC | a | a
C ::= Cb | b }

C' = ([a, b}, [S, , C}, S, r)
r = [ S ::= C | aSb | | aC | a | a
::= aC | a | a
C ::= Cb | b } Lllmlnar la
8edenomlnacln
109
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


1ransformacln de una C dada en oLra equlvalenLe cuyas reglas de
produccln esLen en un formaLo carenLe de lmperfecclones:
1. L|mp|eza de Gramncas
a. 8eglas lnnecesarlas
b. Slmbolos lnacceslbles
c. 8eglas Superuas
2. L||m|nac|n de s|mbo|os no generanvos
3. L||m|nac|n de reg|as no generanvas
4. L||m|nac|n de reg|as de redenom|nac|n
-.)/0123)+#Z2%&#45./)E)+#
C
r
a
m

u
c
a

L
l
m
p
l
a

C
r
a
m

u
c
a

8
e
d
u
c
l
d
a

C
r
a
m

u
c
a

8
l
e
n

l
o
r
m
a
d
a

110
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


Cramucas 1lpo 2
Cramucas blen formadas
lormas normales
111
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)+#85./)6%+#
!Son noLaclones que se apllcan a las C2:
AfecLan a la forma de las reglas de produccln
!Son dos las que se va a esLudlar:
J6%:(!K6%:('!,&!L.6:;M3!
J6%:(!K6%:('!,&!E%&*C().!

112
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#LI5/+S,#
una gramuca blen formada esL en lorma normal de Chomsky (lnC) sl
las parLes derechas de Lodas sus reglas de produccln uenen a lo sumo
dos slmbolos, y cuando son dos, ambos son no 1ermlnales.
L[emp|o: La slgulenLe gramuca esL en lnC:
S ::= % | a | nn
n ::= n1 | A8
A ::a
8::= b
113
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#LI5/+S,#
114
A parur de cualquler gramuca de 1lpo 2, se puede consLrulr
oLra equlvalenLe que esL en lnC.
N292# 7EEA"# 07# 87O7=# 0B0L>B,9# 87E# 0,PB,7=>7# 1A8A# E20# 97PE20# ;B$2# @29>7
8797;Q2#L7=7#1R0#87#*#0S1OAEA0#@A9#:29,20#97PE20#TB7#>7=P2=#7=#E2#@29>7
8797;Q2#8A0#0S1OAEA0#=A#>791,=2E70#A#B=#0AEA#0S1OAEA#>791,=2E3#
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


#45./)#85./)6#E%#LI5/+S,#
113

A ::= x
|x| = 1

!
T
FNC
( A :: = a )
!N
REDENOMINACION
( A :: = B )

u " !N

u " !T

|v| = 1 y v " !N
FNC
( A :: = BC )

|v| > 1 o v"!
T
A :: = uv

A :: = uv
|x| > 1
x = uv, donde |u| = 1
A :: = uC
FNC
( A ::= BC )
C ::= v


A :: = Dv

D ::= u
FNC
( A ::= a )


C # !N
G = !N $ {C}

D # !N
G = !N $ {D}

FORMA NORMAL DE CHOMSKY
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#LI5/+S,#
116
C = ([a, b, c}, [A, 8, C, u, L, l}, A, )
=
8::=8
C::=C
A::=A8C
u::=a
L::=lb8
l::=LaA
A::=bA
8::=8a
A::=a8b
8::=bAa
A::=a
8::=a
C::=c
C::=Cb
LILMLC:
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#LI5/+S,#
117
C = ([a, b, c}, [A, 8, C, u, L, l}, A, )
=
8::=8 $lnnecesarla
C::=C $lnnecesarla
A::=A8C
u::=a $lnnacceslble
L::=lb8 $lnnacceslble
l::=LaA $lnnacceslble
A::=bA
8::=8a
A::=a8b
8::=bAa
A::=a
8::=a
C::=c
C::=Cb
Bien Formar la Gramtica
Cramuca 8len lormada:
C = ([a, b, c}, [A, 8, C, u, L, l}, A, )
=
A::=a
A::=a8b
A::=A8C
A::=bA
8::=a
8::=8a
8::=bAa
C::=c
C::=Cb A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#LI5/+S,#
118
Cramuca 8len lormada:
C = ([a, b, c}, [A, 8, C, u, L, l}, A, )
=
A::=a Sl (lnC)
A::=a8b no (lnC)
A::=A8C no
A::=bA no
8::=a Sl
8::=8a no
8::=bAa no
C::=c Sl
C::=Cb no
1ransformacln a lnC (quedan Labuladas las nuevas
reglas generadas en lnC)
1raLamlenLo de A::=a8b
A::=a8b
D::=a
A::=u8b
L::=8b
A::=DL
I::=b
L::=8I

1raLamlenLo de A::=A8C
A::=A8C
G::=8C
A::=AG

1raLamlenLo de A::=bA
A::=bA
A::=IA
1raLamlenLo de 8::=8a
8::=8a
8::=8D


1raLamlenLo de 8::=bAa
8::=bAa
8::=lAa
P::=Aa
8::=In
n::=AD


1raLamlenLo de C::=Cb
C::=Cb
C::=CI
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


#45./)#85./)6#E%#-.%2C)3I#
! FNG es una notacin muy interesante para algunos reconocimientos
sintcticos. En ella todas las reglas tienen la parte derecha
comenzando con un terminal seguido opcionalmente de uno o varios
NT
! TEOREMA: todo L de contexto libre sin % puede ser generado por
una G2 en la que todas las reglas sean de la forma:
A . a1 donde A #!
NT
,a#!
T
y 1 #!
NT
*


Si % # L habr que aadir S::= %
! TEOREMA: toda G2 puede reducirse a otra G2 equivalente sin reglas
recursivas a izquierdas
119
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


#45./)#85./)6#E%#-.%2C)3I#
FNG: para transformar una G2 en su equivalente en forma normal de
Greibach:
1. Limpiar y formar bien. Eliminar la recursividad a izquierdas
2. Aplicar el algoritmo de transformacin a FNG, verificando en
cada paso que no aparezcan nuevas reglas recursivas a
izquierdas y si aparecen, eliminndolas con el paso 1
LILMLC:
C = ([a,b}, [S}, S, ), donde = [S::=aSb | SS | %}
120
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


#45./)#85./)6#E%#-.%2C)3I#
1. Lllmlnar la recurslvldad a lzqulerdas, resumlendo, serla:
sea C = ([1
1
, 1
2
, 2
1
, 2
2
}, [A}, A, ),
donde = [A::= A 1
1
| A1
2
| 2
1
| 2
2
}
Cuedarla:
A::= 2
1
| 2
2
| 2
1
X | 2
2
X
X::= 1
1
| 1
2
|X| 1
2
X

Lllmlnar la recurslvldad a lzqulerdas:
S ::= aSb | SS | % - (se Lransforma en) - S ::= aSb | aSbx | % y x ::= Sx | S
121
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
2.1ransformacln de C2 blen formada sln 8l a lnC:

2.1 Lstab|ecer una re|ac|n de orden parc|a| en !
N1
!
n1
= [A
1
, A
2
, ..., A
n
} basndose en: sl Al . A[ 1, Al preceder a A[.
Cuando hay reglas conLradlcLorlas" usar una de ellas para el
orden y mlrar el resLo para ver que convlene ms
A ::= o8 (A serla n 1 y 8 n 2). o es una cadena de 0 o ms Lermlnales y
una cadena de 0 o ms slmbolos.
8 ::= Cy (8 serla n 2 y C n 3). es una cadena de 0 o ms Lermlnales y
y una cadena de 0 o ms slmbolos.

122
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
2.1ransformacln de C2 blen formada sln 8l a lnC:
2.2 Se c|as|hcan |as reg|as en 3 grupos:
Grupo 1: A| . a 1 ,donde a #!
1
y 1 #! *
Grupo 2: A| . A[ 1 donde Al precede a A[ en el con[unLo !
n1
ordenado
Grupo 3: Ak . A| 1 donde Al precede a Ak en el con[unLo !
n1
ordenado

Pacer lo mlsmo con las de grupo 2
Crdenar los no Lermlnales: [x, S} y claslcar las reglas segun esLe orden:
S ::= aSb (C1, aunque hay que qulLar el Lermlnal que esL deLrs del no Lermlnal)
S ::= aSbx (C1, aunque hay que qulLar el Lermlnal que esL deLrs del no Lermlnal)
S ::= % (C1)
x ::= Sx (C2)
x ::= S (C2)
123
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
2.1ransformacln de C2 blen formada sln 8l a lnC:
2.3 Se transforman |as reg|as de grupo 3 . grupo 2 . grupo 1: ING
Ak . A| 1 se susuLuye A| por la parLe dcha. de Lodas las reglas que uenen A|
como parLe lzda.

Pacer lo mlsmo con las de grupo 2
Crdenar los no Lermlnales: [x, S} y claslcar las reglas segun esLe orden:
S ::= aSb (C1, aunque hay que qulLar el Lermlnal que esL deLrs del no Lermlnal)
S ::= aSbx (C1, aunque hay que qulLar el Lermlnal que esL deLrs del no Lermlnal)
S ::= % (C1)
x ::= Sx (C2)
x ::= S (C2)
124
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
2.1ransformacln de C2 blen formada sln 8l a lnC:
2.3 Se transforman |as reg|as de grupo 3 . grupo 2 . grupo 1: ING
Ak . A| 1 se susuLuye A| por la parLe dcha. de Lodas las reglas que uenen A|
como parLe lzda.
Ls declr, SusuLulr el prlmer slmbolo n1 de la parLe dcha. de cada regla del grupo 3
por las parLes dchas. de Lodas las reglas (en cualquler grupo) donde dlcho prlmer
slmbolo aparezca como parLe lzqulerda. Pacer esLo hasLa que hayamos
conseguldo que Lodas las reglas del grupo 3 hayan sldo Lransformadas en reglas
de oLros grupos. Sl en esLe proceso aparecen reglas recurslvas a lzqulerdas,
Lransformarlas.

Pacer lo mlsmo con las de grupo 2
123
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
2.1ransformacln de C2 blen formada sln 8l a lnC:
2.3 Se transforman |as reg|as de grupo 3 . grupo 2 . grupo 1: ING
Ak . A| 1 se susuLuye A| por la parLe dcha. de Lodas las reglas que uenen A|
como parLe lzda.
Pacer lo mlsmo con las de grupo 2
1ransformamos las de grupo C2 en grupo C1:
x ::= Sx -S ::= aSb- x ::= aSbx (C1, aunque hay que qulLar el Lermlnal que
esL deLrs del no Lermlnal)
-S ::= aSbx- x ::= aSbxx (C1, aunque hay que qulLar el Lermlnal
que esL deLrs del no Lermlnal)
x ::= S -S ::= aSb- x ::= aSb (C1, aunque hay que qulLar el Lermlnal que
esL deLrs del no Lermlnal)
-S ::= aSbx- x ::= aSbx (C1, aunque hay que qulLar el Lermlnal
que esL deLrs del no Lermlnal)
126
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
2. 1ransformacln de C2 blen formada sln 8l a lnC:
2. 4. Cuando Lodas las reglas son de grupo 1, la C esL en lnC a falLa de
e||m|nar |os s|mbo|os term|na|es no s|tuados en |a cabecera de |a parte
derecha.
A . 1 a 2 donde a#!
1
y 1 4 %


Ls declr, Lransformar los slmbolos Lermlnales no slLuados en cabeza de
parLe derecha, aslgnndoles nuevos n1 que derlven en ellos (o n1 que ya
exlsLen que slo derlven en ellos).
A . 1 8 2
8 . a
127
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
2. 1ransformacln de C2 blen formada sln 8l a lnC:
2. 4. Cuando Lodas las reglas son de grupo 1, la C esL en lnC a falLa de
e||m|nar |os s|mbo|os term|na|es no s|tuados en |a cabecera de |a parte
derecha.
A . 1 a 2 donde a#!
1
y 1 4 %


A . 1 8 2
8 . a
lnLroduclmos un nuevo slmbolo para qulLar el b:
8 ::= b
128
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


45./)#85./)6#E%#-.%2C)3I#
La Cramuca en lnC queda:

C' = ([a,b}, [S,x,8}S, '})

' = [
S ::= aS8 | aS8x | %
x ::= aS8x | aS8xx | aS8
8 ::= b
}
C = ([a,b}, [S}, S, ),

= [S::=aSb | SS | %}
HNHO>FP!
129
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o


Z2C625'.)AR)#
Llbro 8slco 1 8lbllograna (AAM). Lnrlque Alfonseca Cubero,
Manuel Alfonseca Cubero, 8oberLo Morlyn Salomn. 1eorla
de auLmaLas y lengua[es formales. McCraw-Plll (2007).
CaplLulo 3
Llbro 8slco 2 8lbllograna (PMu). !ohn L. Popcro, 8a[eev
MoLwanl, !erey u.ullman. lnLroduccln a la Leorla de
auLmaLas, lengua[es y compuLacln (3 edlcln). Ld, earson
Addlson Wesley.
Llbro 8slco 4 8lbllograna (AAM). Manuel Alfonseca, !usLo
Sancho, Mlguel Marunez Crga. 1eorla de lengua[es,
gramucas y auLmaLas. ubllcaclones 8.A.L.C. 1997
CaplLulo 3
130
A
.

S
a
n
c
h
|
s
,

A
.

L
e
d
e
z
m
a
,

I
.

I
g
|
e
s
|
a
s
,

8
.

G
a
r
c
|
a
,

I
.

A
|
o
n
s
o

Você também pode gostar