Sie sind auf Seite 1von 56

Conceptos y Paradigmas de

Lenguajes (UNaM)
1
LENGUAJES !"MALES
S#N$A%#S & SEMAN$#CA
#ng' Ju(io C' Acosta
Conceptos y Paradigmas de
Lenguajes (UNaM)
)
Comunicaci*n
EM#S!"
"ECEP$!"
MENSAJE
idea o
asunto
codi+icaci*n
decodi+icaci*n
"U#,!
Conceptos y Paradigmas de
Lenguajes (UNaM)
-
LENGUAJES
Lenguaje es .e/0cu(o de comunicaci*n
entre
personas & personas
personas 1 m23uinas m23uinas & personas
personas 1 anima(es 44
Conceptos y Paradigmas de
Lenguajes (UNaM)
5
LENGUAJES
6
Lenguaje 7u(gar
6
Lenguaje de Ciencia
6
Lenguaje orma(
Conceptos y Paradigmas de
Lenguajes (UNaM)
8
Sinta9is: Conjunto de reg(as para (a correcta
escritura'
Sem2ntica: Conjunto de reg(as 3ue a tra.;s
de una +rase sint2cticamente correcta
de+inen un signi+icado correcto para (as
oraciones' (interpretaci*n)
Los (enguajes 3ue usa (a ciencia se ((aman LENGUAJES
!"MALES' (su sem2ntica 3ueda tota(mente de+inida
antes de introducir su uso)'
Conceptos y Paradigmas de
Lenguajes (UNaM)
<
#mportancia de( Estudio de Lenguajes orma(es en
Computaci*n
$oda (a computaci*n trata con (enguajes +orma(es (entre
e((os (os (enguajes de programaci*n)'
La construcci*n de (os (enguajes de programas son
(enguajes +orma(es'
$odos (os resu(tados se generan a partir de (enguajes
+orma(es'
En computaci*n= di+erenciamos a( menos tres ni.e(es:
6
Usuarios de PC & $;cnicos 3ue /acen mantenimiento'
6
Programadores & (,istintos ni.e(es)'
6
,ise>adores de Lenguajes de programaci*n e
in.estigadores de nue.as t;cnicas'
Conceptos y Paradigmas de
Lenguajes (UNaM)
?
6
,enotemos con A @ A a= B= c= d= ' ' ' ' ' ' ' 9= y= C= 2= ;= 0= *= D E (as
(etras minDscu(as de( a(+aBeto espa>o( y (as cinco .oca(es con
acento ortogr2+ico
En este conjunto A una pa(aBra cua(3uiera= (con o sin sentido)=
+ormada con (as (etras de( a(+aBeto espa>o( ser2 una n&ada
ordenada de (etras de( a(+aBeto' Se nomina +recuentemente esta n&
ada ordenada con e( t;rmino cadenas o sucesiones' As0: e(
3u0ntup(e (o= r= d= e= n) &en rigor deBiera escriBirse:
( ( ( (o= r)= d)= e)= n) & corresponde a (a pa(aBra orden'
Podemos usar (a notaci*n A
n
* A a= B= c= d= ' ' ' ' ' ' ' 9= y= C= 2= ;= 0= *= D E
n

para denotar e( conjunto de todas (as sucesiones de n (etras'
AF puede ser usada para denotar e( conjunto de todas (as sucesiones
de a una= dos= tres ' cuatro' ' ' ' m (etras' con m n * m @ n
As0 por ejemp(o: e( conjunto de todos (os nomBres de una gu0a de
te(;+ono es un suBconjunto de AF (en ;( /ay cadenas de a una= dos=
tres ' ' ' ' ' m (etras)'
Conceptos y Paradigmas de
Lenguajes (UNaM)
G
Si H @ A a= B= c= ' ' ' ' 9= y= C= A= H= C= ' ' ' ' %= I= J= '= K= := == L= 4= M= N E
3ue es oB.io se trata de todas (as (etras mayDscu(as= minDscu(as= (etras acentuadas=
signos de puntuaci*n y e( gui*n (3ue representa (os espacios en B(anco)' A partir de(
conjunto HF= podemos construir +rases como:
OuieroNestudiarNsistemas
MN,*ndeNconseguir;Ne(NapunteN 4 3ue son cadenas de( conjunto HF
,e manera an2(oga= una e9presi*n en cua(3uier (enguaje (L) (de programaci*n)= es
una serie de cadenas o sucesiones de CF con L CF= donde L es un (enguaje
de+inido con s0mBo(os de C= donde C puede ser:
C @ A a= B= c= ' ' ' ' 9= y= C= A= H= C= ' ' ' ' %= I= J= P= 1= ' ' ' 'G= Q= R= &= 9= S= '= K= := == L= 4= M= N E
A/ora s0 podemos apro9imarnos a( concepto de (enguaje en sentido +orma(= a( decir
3ue: dado un a(+aBeto A e( (enguaje L es un suBconjunto de( conjunto AF (conjunto de
todas (as cadenas posiB(es de( a(+aBeto A)'
As0 por ejemp(o: si A @ A a= B= c E podemos de+inir (enguajes:
L1 @ A a= a a= a B= a c= a B c= c a B E
L) @ A a B a= a a B a a E
L- @ A N E
L5 @Aai c Bi S i 1 E
Conceptos y Paradigmas de
Lenguajes (UNaM)
Q
Lenguajes orma(es
Un (enguaje +orma( est2 con+ormado por cadenas
de s0mBo(os y cada cadena deBe tener un
signi+icado Tpreciso e ine3u0.ocoU'
Un (enguaje posee: 7ocaBu(ario y Gram2tica
7ocaBu(ario son (os TB(o3ues o signosU a partir de
(os cua(es se construyen (as cadenas de(
(enguaje
Conceptos y Paradigmas de
Lenguajes (UNaM)
1P
Ejemp(os de cadenas de (enguajes +orma(es
L(1)@Aa=BE
L())@Aa=B=aB=Ba=aa=BB=aBa=BaBE
L(-)@Aaaa=BBB=aBB=Baa=aaB=BBa=aBa=BaBE
L(1)@Aa=B=aB=BaE es un (enguaje de 5 pa(aBras (cadenas)
L())@Aa=B=aB=Ba=aa=BB=aBa=BaBE
L(-)@Aaaa=BBB=aBB=Baa=aaB=BBa=aBa=BaBE
E( (enguaje L(-) se puede escriBir L(-) @ Aa=BE
-
3ue signi+ica (enguaje
con+ormado por todas (as cadenas de tres s0mBo(os 3ue pueden +ormarse con
(os termina(es a y B
Longitud de una cadena es (a cantidad de s0mBo(os 3ue contiene (a misma'
Cada cadena tiene un signi+icado en cada uno de (os (enguajes
Conceptos y Paradigmas de
Lenguajes (UNaM)
11
Sea 7 un a(+aBeto y V e( uni.erso de cadenas de( a(+aBeto 7
Para un (enguaje A V= de+inimos (os conjuntos A
W
= WP mediante
A
P
@ X X es .ac0o
A
1
@ A
P
A @ X A @ A
A
)
@ A
1
A @ A A
A
-
@ A
)
A @ A A A
A
5
@ A
-
A @ A A A A
YYYYYYYYY''
La uni*n de todos estos conjuntos es
k
k
A A

=
=
0
*
A @ Aa= BE
A
1
@ Aa= BE
A
)
@ Aaa= aB= Ba= BBE
A
-
@ Aaaa= aaB= aBa= Baa= aBB= BaB= BBa= BBBE
C(ausura de Z(eene
Conceptos y Paradigmas de
Lenguajes (UNaM)
1)
Los (enguajes +ueron de+inidos como conjuntos de cadenas= entonces
se pueden ap(icar a e((os operaciones de conjuntos' Por ejemp(o:
sean L1 y L) dos (enguajes K
L1 L) es un (enguaje 3ue contiene (os enunciados de L1 o (os
enunciados de L)'
Si L1 es e( idioma espa>o( y L) es e( idioma ing(;s= L1 L) ser2 e(
conjunto de enunciados 3ue a(guien 3ue /aB(e espa>o( e ing(;s es
capaC de reconocer'
L1 L) es un (enguaje 3ue contiene (os enunciados de L1 y (os
enunciados de L) ((os enunciados comunes a amBos (enguajes)'
Si L1 es e( (enguaje de programaci*n !"$"AN y L) es e( (enguaje de
programaci*n HAS#C= L1 L) ser2 e( conjunto de enunciados
.2(idos tanto en !"$"AN como en HAS#C'
Se puede /acer re+erencia a un (enguaje 3ue se genera a partir de(
a(+aBeto M @ A '= & E 3ue es e( c*digo Morse' A(gunas de (as cadenas
3ue componen e( MF e9presan di+erentes (etras y s0mBo(os de(
a(+aBeto espa>o('
Conceptos y Paradigmas de
Lenguajes (UNaM)
1-
Concatenaci*n de (enguajes
,ados dos (enguajes A y H= de+inimos (a
concatenaci*n como:
A H @ A S A = HE
Ejemp(o' A@ Aa= aBE H @ Ac= BcE
AH @ Aac= aBc= aBBcE
Conceptos y Paradigmas de
Lenguajes (UNaM)
15
E( re.erso de un (enguaje L= contiene e(
re.erso de cada cadena de+inida en L
L
"
@ A
"
S LE
En e( (enguaje L @ A
"
S 7
F
E
cada cadena de L es e( re.erso de si mismo= por eso este (enguaje es
conocido como (enguaje espejo o especu(ar
Sea L(1) @ Aa= aBE L()) @ Aa= c= cdE
L(1) L()) @ Aa= aB= c= cdE
L(1) L()) @ AaE
Conceptos y Paradigmas de
Lenguajes (UNaM)
18
Lenguajes +orma(es
Gram2tica son (as reg(as 3ue comBinan (os s0mBo(os de(
.ocaBu(ario para generar e( (enguaje'
Las reg(as de (a gram2tica se .a(en de producciones donde
se in.o(ucran s0mBo(os termina(es y no termina(es
S0mBo(os termina(es son (os s0mBo(os 3ue +orman (as
cadenas de( (enguaje'
S0mBo(os no termina(es son au9i(iares para (a +ormaci*n de
(as cadenas
Conceptos y Paradigmas de
Lenguajes (UNaM)
1<
orma(mente= (a gram2tica para un (enguaje
+orma( de de+ine en un cu2drup(e (N=$=P=s
P
)
donde:
N: conjunto +inito de s0mBo(os no termina(es
$: conjunto +inito de s0mBo(os termina(es
P: conjunto +inito de producciones
s
P:
s0mBo(o inicia(
Ejemp(os de cadenas de (enguajes +orma(es
L(1)@Aa=B=aB=BaE
L())@Aa=B=aB=Ba=aa=BB=aBa=BaBE
L(-)@Aaaa=BBB=aBB=Baa=aaB=BBa=aBa=BaBE
Conceptos y Paradigmas de
Lenguajes (UNaM)
1?
Lenguaje 3ue representa (a ocurrencia de( (anCamiento de
de una moneda dos .eces

L(G)@Acc=cs=sc=ssE
G(N=$=P=s
P
) donde
N@ As
P
E $@Ac=sE
P @ As
P
[cc= s
P
[cs= s
P
[sc= s
P
[ssEmejoramos P
N@ As
P
= AE $@Ac=sE
P @ As
P
[AA= A[c= A[sE
Conceptos y Paradigmas de
Lenguajes (UNaM)
1G
Una Gram2tica para estructuras de e9presiones G
es un cu2drup(e (N= $= SP= P)= donde:
N es un conjunto finito de smbolos no terminales
o smbolos auxiliares'
$ es un conjunto finito de smbolos terminales'
sP es un smbolo inicial = sP N
P es un sub conjunto finito de( producto
\( N $ )F & $ ] 9 ( N $ )F ((amado conjunto de
producciones'
$enga presente 3ue N $ @
Conceptos y Paradigmas de
Lenguajes (UNaM)
1Q
Ejemp(o de gram2tica de( (enguaje espa>o( (no +orma()
^oraci*n_[^sujeto_ ^predicado_
^sujeto_ [ ^sustanti.o_
^predicado_ [^.erBo_^adjeti.o_
^sustanti.o_ [Juan
^sustanti.o_ [Mar0a
^.erBo_ [ corre
^.erBo_ [ suBe
^adjeti.o_ [ r2pido
^adjeti.o_ [ antes
Conceptos y Paradigmas de
Lenguajes (UNaM)
)P
^oraci*n_[^sujeto_ ^predicado_ (1)
^sujeto_ [ ^sustanti.o_ ())
^predicado_ [^.erBo_^adjeti.o_ (-)
^sustanti.o_ [Juan (5)
^sustanti.o_ [Mar0a (8)
^.erBo_ [ corre (<)
^.erBo_ [ suBe (?)
^adjeti.o_ [ r2pido (G)
^adjeti.o_ [ antes (Q)
Se generan cadenas como:
^oraci*n_ [ ^sujeto_ ^predicado_ [ ^sustanti.o_ ^predicado_ [
^sustanti.o_^.erBo_^adjeti.o_ [ Juan ^.erBo_^adjeti.o_
[ Juan corre ^adjeti.o_ [ Juan corre r2pido
^oraci*n_ [ ^sujeto_ ^predicado_ [ ^sustanti.o_ ^predicado_ [
^sustanti.o_^.erBo_^adjeti.o_ [ Juan ^.erBo_^adjeti.o_
[ Juan suBe ^adjeti.o_ [ Juan suBe r2pido
Conceptos y Paradigmas de
Lenguajes (UNaM)
)1
^oraci*n_[^sujeto_ ^predicado_ (1)
^sujeto_ [ ^sustanti.o_ ())
^predicado_ [^.erBo_^adjeti.o_ (-)
^sustanti.o_ [Juan (5)
^sustanti.o_ [Mar0a (8)
^.erBo_ [ corre (<)
^.erBo_ [ suBe (?)
^adjeti.o_ [ r2pido (G)
^adjeti.o_ [ antes (Q)
Se generan cadenas como:
^oraci*n_ [ ^sujeto_ ^predicado_ [ ^sustanti.o_ ^predicado_ [
^sustanti.o_^.erBo_^adjeti.o_ [ Mar0a ^.erBo_^adjeti.o_
[ Mar0a corre ^adjeti.o_ [ Mar0a corre antes
^oraci*n_ [ ^sujeto_ ^predicado_ [ ^sustanti.o_ ^predicado_ [
^sustanti.o_^.erBo_^adjeti.o_ [ Mar0a ^.erBo_^adjeti.o_
[ Mar0a corre ^adjeti.o_ [ Mar0a corre r2pido
No es cadena de( (enguaje por ejemp(o: Tcorre Juan antesU
Conceptos y Paradigmas de
Lenguajes (UNaM)
))
A(gunos autores e9presan (a gram2tica G @ ( 7= S= .P= [) donde:
S son s0mBo(os termina(es= 3ue en este traBajo ((amamos $
.P es e( s0mBo(o inicia(= 3ue en este traBajo ((amamos sP
[ es (a re(aci*n determinada en e( conjunto producci*n= 3ue en este traBajo
((amamos P'
$odo esto no merece mayores comentarios= pero 7 es $ N=
As0= de+inida una gram2tica G @ ( 7= S= .P= [) a partir de:
7 @ A .P= V= a= B= c E S @ A a= B= c E y
una re(aci*n en 7F
3ue .eri+ica: .P [ a V K V [ B B V K V [ c
Conceptos y Paradigmas de
Lenguajes (UNaM)
)-
(a misma gram2tica G @ ( N= $= s
P
= P ) donde:
N @ A s
P
= V E $ @ A a= B= c E y P @ A sP [a V= V [ B B V= V [ c E
,ada (a di.ersidad de notaciones de (a BiB(iogra+0a= en este traBajo nominaremos
con (etra minDscu(a a (os s0mBo(os termina(es ($)=
con (etra mayDscu(a a (os s0mBo(os no termina(es (N)=
con s
P
e( s0mBo(o inicia( (cuando no se especi+i3ue e9p(0citamente otra cosa) y
con P (as producciones 3ue componen (a gram2tica'
Los s0mBo(os consecuti.os pueden aparecer separados por un espacio= (o 3ue
no signi+ica (a presencia de( espacio como s0mBo(o= cuando esto suceda= e(
espacio aparecer2 e9p(0cito como TNU
Conceptos y Paradigmas de
Lenguajes (UNaM)
)5
Ejemp(o Con (a gram2tica antes de+inida= /a((ar a( menos dos cadenas termina(es
de L(G)= y si es posiB(e deducir una e9presi*n genera( de L(G)'
N @ A sP= V E $ @ A a= B= c E y P @ A sP [a V= V [ B B V= V [ c E
,esarro((o:
s
P
a V a c
sP a V a B B V a B B c
$amBi;n puede oBtenerse
s
P
a V a B B V a B B B B V a B B B B c @ a B
5
c
donde B5 indica (a repetici*n de B 5 .eces
son cadenas de( (enguaje L(G)
L(G) @ A a B)n c K n P E
Este (enguaje est2 +ormado por todas (as cadenas 3ue comienCan con un
s0mBo(o TaU= terminan en un s0mBo(o TcU y en e( medio tienen un nDmero par de
s0mBo(os TBU o no tienen ningDn s0mBo(o B'
Conceptos y Paradigmas de
Lenguajes (UNaM)
)8
Ejemp(o Sea (a gram2tica G @ ( N= $= sP= P ) donde:
N @ As
P
= VE $ @ A a= B= c E P @ A sP[a sP B K sP B [ B V K a B V [ c E
/a((ar a( menos dos cadenas termina(es de L(G)= y si es posiB(e deducir una
e9presi*n genera( de L(G)'
,esarro((o:
s
P
a sP B a B V c
sP a sP B a a sP B B a a B V B a c B
sP a sP B a a sP B B a a a sP B B B a a a B V B B a a c B B
Este (enguaje est2 +ormado por todas (as cadenas 3ue comienCan con una o
mas TaU= terminan con una o mas TBU y en e( medio siempre tienen una TcU'
$amBi;n (a cadena +ormada por un so(o s0mBo(o TcU'
Entonces: L(G) @ A a
n
c B
n
K n P E
Conceptos y Paradigmas de
Lenguajes (UNaM)
)<
Ejemp(o Construir una gram2tica G para e( (enguaje L(G):
L(G) @ A a a a a= a a B B= B B a a= B B B B E
,esarro((o :
"econocemos (os s0mBo(os no termina(es contenidos en e( (enguaje cuya
gram2tica 3ueremos construir y e9presamos e( conjunto
$ @ A a= B E
nos .a(emos de( s0mBo(o inicia( no termina( sP para poder deri.ar= y
generamos (a producci*n:
P @ A sP [ a a a a= sP [ a a B B= sP [ B B a a= sP [ B B B B E
con N @ A sP E 3ueda de+inida (a gram2tica G ( N= $= sP= P )
podemos tener una gram2tica mas senci((a si agregamos a( conjunto N= e( s0mBo(o no
termina( A y de+inimos (a producci*n:
P @ A sP [ A A K A [ a a K A [ B B E N @ A sP= A E $ @ A a= B E
Conceptos y Paradigmas de
Lenguajes (UNaM)
)?
Ejemp(o Construir una gram2tica para e( (enguaje L(G) @ A a
i
B
)i
i 1 E
,esarro((o:
L(G) @ A a B B= a a B B B B= a a a B B B B B B= ' ' ' ' ' ' ' ' ' ' ' E
Los s0mBo(os termina(es con+orman e( conjunto $ @ A a= B E
(as cadenas 3ue con+orman L(G) est2n compuestas por e( doB(e de s0mBo(os B
3ue s0mBo(os a K proponemos una primera producci*n
sP [ a sP B B
y una segunda producci*n 3ue se ap(icar2 para +ina(iCar e( cic(o de deri.aciones
sP [ a B B

as0 e( conjunto P @ A sP [ a sP B BK sP [ a B B E
E( conjunto de s0mBo(os no termina(es es N @ A sP E
y (a gram2tica G ser2: G @ ( N= $= sP= P )
Conceptos y Paradigmas de
Lenguajes (UNaM)
)G
Ejemp(o Construir una gram2tica (G) para e( (enguaje
L(G) @ A a
i
B
j
i= j 1= i j E
,esarro((o:
Este (enguaje est2 +ormado por todas (as cadenas 3ue comienCan con una o
mas TaU= terminan con una o mas TBU con (a condici*n 3ue (a cantidad de TaU y
de TBU son distintas'
Podemos pensar(o a( L(G) como L1 L) donde:
L1 @ A a
i
B
j
i > j E y L) @ A a
i
B
j
i < j E
reconocemos una producci*n en una gram2tica para L1 donde:
$ @ A a= B E y N @ A A= H E como:
A [a AK A [ a HK H [ a H B H [ a B
Conceptos y Paradigmas de
Lenguajes (UNaM)
)Q
reconocemos tamBi;n una producci*n en una gram2tica para L) donde:
$ @ A a= B E y N @ A C= , E como:
C [ C BK C [ , BK , [ a , BK , [ a B
es necesario una producci*n 3ue d; inicio a( TsistemaU= as0 introducimos:
sP [ A sP [ C
Considerando 3ue , [ a B y H [ a B K , [ a , B y H [ a H B son e3ui&
.a(entes= podemos reemp(aCar e( s0mBo(o no termina( , por e( s0mBo(o no
termina( H'
P @ A sP[AK sP[CK A[a AK A[a HK H[a H BK H[a BK C[C BK C[H B E
$ @ A a= B E N @ A sP= A= H= C E
Esta ser2 (a gram2tica G @ ( N= $= sP= P )
Conceptos y Paradigmas de
Lenguajes (UNaM)
-P
JE"A"OU#A ,E C`!MSZI
Gram2tica $ipo -
Son producciones 3ue tienen a (a iC3uierda so(o un
s0mBo(o N! termina( y a (a derec/a s0mBo(os
termina(es= o a (o sumo un no termina( 3ue se
uBica a (a derec/a de (a cadena'
A [a H[Bc C[Ha H[aBA
Conceptos y Paradigmas de
Lenguajes (UNaM)
-1
JE"A"OU#A ,E C`!MSZI
Gram2tica $ipo )
Son producciones 3ue tienen a (a iC3uierda so(o un
s0mBo(o N! termina( y a (a derec/a s0mBo(os
termina(es y no termina(es
A [ aHHB H[HBc C[HacH H[HA
Conceptos y Paradigmas de
Lenguajes (UNaM)
-)
JE"A"OU#A ,E C`!MSZI
Gram2tica $ipo 1
Son producciones 3ue tienen a (a iC3uierda
s0mBo(os termina(es y no termina(es y a (a
derec/a s0mBo(os termina(es y no termina(es=
con (a restricci*n de ser producciones de( tipo
a[b donde (ong(a) ^ (ong(b)
aA [ aHHB AH[HBc CaH[HacH
Conceptos y Paradigmas de
Lenguajes (UNaM)
--
JE"A"OU#A ,E C`!MSZI
Gram2tica $ipo P
Son producciones de cua(3uier tipo
HHaA [ aH HaaH [ Bc CH [ a aHa [ HA
Los tipos de gram2tica en (a jerar3u0a de C/omsWy son
aBarcati.os= es decir:
$ipo - $ipo ) $ipo 1 $ipo P
Conceptos y Paradigmas de
Lenguajes (UNaM)
-5
$ipo ormato de Producciones Comentarios
H [ aA
- A [ a
s
P
[ X
H [ AB
A [ a
s
P
[ X
) A [ X
1 cAd [ cd X
P cAd [ cd
Linea(es por
iC3uierda
Linea(es por
derec/a
Gram2ticas
regu(ares
Gram2ticas LiBres
de( conte9to
Gram2ticas sensiB(es
a( conte9to
Gram2ticas sin
restricci*n
Gram2tica 3ue
contrae
Gram2tica 3ue
no contrae
Conceptos y Paradigmas de
Lenguajes (UNaM)
-8
Gram2ticas $ipo P (sin restricciones)
Por ser muy genera(es pierden +uerCa descripti.a&
Sus cadenas no son interesantes como (enguajes arti+icia(es
Son interesantes para (as reg(as de deducci*n en (*gica'
Su importancia se centra en 3ue: cAd [ cXd entonces
(ong(
i
) ^ (ong(
iR1
) (a cadena de deducci*n se contrajo
Producciones 3ue contraen son de( tipo aC [ B
Conceptos y Paradigmas de
Lenguajes (UNaM)
-<
Gram2ticas de $ipo 1
(SensiB(es a( conte9to)
Contienen producciones de( tipo cAd [ cd X
Sus producciones a[b .eri+ican eae ebe
En consecuencia
1

)
Y
n

Con (ongitud e
1
e e
)
e '''' e
n
e
La (ongitud de (as cadenas no decrecen
Conceptos y Paradigmas de
Lenguajes (UNaM)
-?
Gram2ticas $ipo ) 1 LiBres de conte9to
No contiene producciones de( tipo cAd [ cd
donde (a cadena cd aparecer2 so(o si a( s0mBo(o A (e precede c y (e
sucede d
Sus producciones son de( tipo A [ donde
A N y A N $ E
F
Las gram2ticas de tipo ) se usan +recuentemente en (enguajes
arti+icia(es= en especia( en (enguajes de programaci*n
Conceptos y Paradigmas de
Lenguajes (UNaM)
-G
Gram2tica $ipo - ("egu(ares)
Son una restricci*n de (as gram2ticas (iBres de conte9to'
Pueden contener a (a iC3uierda de s(a producci*n so(o un
s0mBo(o N= a (a iC3uierda o a (a derec/a de (a cadena
A [aH o A[a
A[Ha o A[a
Conceptos y Paradigmas de
Lenguajes (UNaM)
-Q
ArBo(es de deri.aci*n
Una deri.aci*n puede ser desarro((ada en
+orma de 2rBo(= donde:
Nodo ra0C
Nodos intermedios
Nodos de /ojas (termina(es)
Conceptos y Paradigmas de
Lenguajes (UNaM)
5P
Sea G (N= $= s
P
= P) con N@As
P
= A= HE $ @ A(= )E
P @ As
P
[A= A[AH= A[H= H[(A)= H[()E
,eri.aciones:
s
P
A AHHH ()H ()(A) ()(H)()(())
s
P
A
A H
H
( )
H
( )
( )
ArBo( de deri.aci*n
Conceptos y Paradigmas de
Lenguajes (UNaM)
51
G (N=$=s
P
=P) N@As
P
= A= HE $ @ A(= )E P @ As
P
[A= A[AH= A[H= H[(A)= H[()E
Produce (a cadena ()(()) de .arias maneras di+erentes
s
P
A
HH A(A)
AH
H(A)
()H A(H)
H(H) A(()) ()(A)
()(H) H(())
()(())
Conceptos y Paradigmas de
Lenguajes (UNaM)
5)
t
1
t
1
t
)
t
)
t
n&1
t
n&1
t
n
t
n
s
P
s
P
ArBo( de deri.aci*n de
gram2tica (inea( por
derec/a
ArBo( de deri.aci*n de
gram2tica (inea( por
iC3uierda
S
P
t
1
t
)
Y't
n

F
S
P
t
1
t
)
Y't
n

F
Conceptos y Paradigmas de
Lenguajes (UNaM)
5-
Para (a gram2tica G(N=$= s
P
P) con P @ As
P
[A= A[1A= A[PH= H[PH= H[PE
3ue genera (as cadenas de L(G) @ 1FPPPF La deri.aci*n de 11PPPP es
A
s
P
1 A
1 A
P H
P
H
P H
P
Conceptos y Paradigmas de
Lenguajes (UNaM)
55
AmBiguedad
Una gram2tica es amBigua si e9isten 2rBo(es de deri.aci*n
di+erentes 3ue producen (a misma cadena
En una gram2tica (iBre de conte9to (tipo )) puede /aBer
amBigfedad por:
a) una cadena tiene 2rBo(es de deri.aci*n estructura(emente
di+erentes
B) A(guna cadena 3ue tiene 2rBo(es de deri.aci*n
estructura(mente simi(ares= tiene di+erentes r*tu(os en sus
nodos interiores
Conceptos y Paradigmas de
Lenguajes (UNaM)
58
Sea G(N=$=s
P=
P) una gram2tica (iBre de conte9to (tipo ))
donde P@ As
P
[S= S[SS= S[aBE
genera e( (enguaje L @ A(aB)
n
e n_ PE
s
P
S
S S
a B S S
a B a B
s
P
S
SS
aBS
aBSS
aBaBS
aBaBaB
1
)
-
5
8
<
s
P
S
S S
a B S S
a B a B
S
SS
SSS
aBSS
aBaBS
aBaBaB
1
)
-
5
8
<
s
P
Si se /uBieran usado (os 2rBo(es de deri.aci*n para dar(e interpretaci*n a (as
cadenas= /uBieran ocurrido interpretaciones err*neas
Conceptos y Paradigmas de
Lenguajes (UNaM)
5<
s
P
A
A
A
Sea G(N=$=s
P
=P) una gram2tica
donde P@ As
P
[A= A[APA= A[1E
(a cadena 1P1P1 = puede oBtenerse por dos caminos di+erentes
P
1
A
1
P
A
1
s
P
A
A
A
P
1
A
1
P
A
1
Este es un caso de amBigfedad estructura(
s
P
A APA APAPA APAP1 1P1P1
s
P
A APA APAPA 1PAPA 1P1P1
Conceptos y Paradigmas de
Lenguajes (UNaM)
5?
s
P
A
A
A
1
P
Este es un caso de amBigfedad asociada a( nodo
Sea G(N=$=sP =P) una gram2tica
donde P @ As
P
[A= A[HP= A[AP= H[HP= A[1= H[1 E
(a cadena 1PP= puede oBtenerse con nodos interiores di+erentes
P
s
P
A
H
H
1
P
P
S
P
A AP APP 1PP s
P
A HP HPP 1PP
Conceptos y Paradigmas de
Lenguajes (UNaM)
5G
Caso de amBigfedad para (a e9presi*n a(geBraica a 9 B R c
Sea G(N= $= s
P
= P) N @ As
P
= A= HE $ @ Aa= B= c= R= 9E
P @ As
P
[A= A[AHA= A[a= A[B= A[c= H[R= H[9 E
s
P
A
A
A
H
A
a
H
A
9
s
P
A
A
A
H
a
B
R
c
A
B
H
A
R
c
9
Corresponde a: (a 9 B) R c
deri.aci*n por iC3uierda
Corresponde a: a 9 (B R c)
deri.aci*n por derec/a
ArBo(es de deri.aci*n di+erentes
Conceptos y Paradigmas de
Lenguajes (UNaM)
5Q
Caso de amBigfedad en e( (enguaje caste((ano
Sea G(N= $= s
P
= P)
N @ A^rase_=^rase nomina(_=^rase .erBa(_=^Sustanti.o_^adjeti.o_= ^.erBo_^adjeti.o_E
$ @ Acuento= cienE
P @ A^rase_[^rase nomina(_= ^rase_[^rase .erBa(_
^rase .erBa(_[^sustanti.o_^adjeti.o_= ^rase .erBa(_[^.erBo_^adjeti.o_
^sustanti.o_[cuento= ^.erBo_[cuento= ^adjeti.o_[cienE
Nodos interiores di+erentes
+rase
+rase nomina(
sustanti.o adjeti.o
cien cuento
+rase
+rase .erBa(
.erBo adjeti.o
cien cuento
Este tipo de amBigfedad di+icu(ta (a per+ormance de (os
traductores
(de contar cien
unidades)
(de cuento
nDmero cien)
Conceptos y Paradigmas de
Lenguajes (UNaM)
8P
Gram2tica HN (orma norma( de HacWus&Naur)
Los No termina(es se co(ocan entre par;ntesis agudos= se juntan (as
producciones 3ue tienen id;ntica cadena a (a iC3uierda y en (a
derec/a se separan (as cadenas con una Barra .ertica('
La gram2tica N@As
P
= AE $ @ Aa=BE
PAs
P
[AAK A [aAK A [BAK A [ aK A [BE
Puede escriBirse en (a +orma HN
N@AsP= AE $ @ Aa=BE
^s
P
_ ::@ ^A_^A_
^A_ ::@ a^A_ e B^A_ e a e B
Conceptos y Paradigmas de
Lenguajes (UNaM)
81
N!$AC#!N HN
Una a(ternati.a 3ue poseen (as gram2ticas de tipo ) (y tipo -)= para
desp(egar sus producciones es (a notaci*n HN'
1) Se juntan todas (as producciones 3ue tienen a un mismo no termina(
de( (ado iC3uierdo (por ejemp(o A)= en (a misma (0nea= co(ocando e( no
termina( re+erido (A) de( (ado iC3uierdo y de( (ado derec/o todos (os
termina(es y no termina(es de (a producci*n= en serie= separados
so(amente por una Barra .ertica( (se (ee T*U) 3ue no aporta ningDn
otro signi+icado 3ue e( /ec/o de separar s0mBo(os'
)) E( s0mBo(o [ se reemp(aCa por e( s0mBo(o : :@ 3ue se (ee Tpuede serU'
-) Cada s0mBo(o no termina(= cuando apareCca= ser2 encerrado entre
par;ntesis agudos ^ _' Esto tiene (a .entaja 3ue (os s0mBo(os no
termina(es= pueden tener espacios dentro de e((os= por ejemp(o:
pa(aBra1 pa(aBra) se considera un so(o s0mBo(o y no dos' Se usa e(
espacio como una T(etra o s0mBo(oU con.eniente'
Conceptos y Paradigmas de
Lenguajes (UNaM)
8)
Gram2tica para generar (os nDmeros enteros
S
P
::@ ^signo_^entero_
^signo_ ::@ R e &
^entero_ ::@ ^entero_ ^ci+ra_e^ci+ra_
^ci+ra_::@ 1e ) e - e 5 e 8 e < e ? e G e Q e P e
N @ As
P
= signo= entero= ci+raE $ @ A1=)=-=5=8=<=?=G=Q=PE
Generamos e( &1P)5
s
P
::@ ^signo_^entero_::@ & ^entero_^ci+ra_::@ & ^entero_ ^ci+ra_ ^ci+ra_ ::@
& ^entero_ ^ci+ra_ ^ci+ra_ ^ci+ra_ ::@ & ^ci+ra_ ^ci+ra_ ^ci+ra_ ^ci+ra_ ::@
& 1 ^ci+ra_ ^ci+ra_ ^ci+ra_::@ & 1 P ^ci+ra_ ^ci+ra_ ::@ & 1 P ) ^ci+ra_
::@ & 1 P ) 5
Conceptos y Paradigmas de
Lenguajes (UNaM)
8-
Un ejemp(o:
Consideramos (a siguiente sentencia:
V ::@ i+ 9 ^ y t/en P e(se 9 R y R1
1' ^dec(araci*n_ ::@ ^parte iC3uierda_^e9presi*n_
)' ^parte iC3uierda_::@^identi+icador_
-' ^e9presi*n_ ::@ i+ ^e9presi*n Boo(eana_ t/en ^e9presi*n aritm;tica_ e(se
^e9presi*n_
si e( .a(or Te9presi*n Boo(eanaU es .erdadero= su .a(or es e( de Te9presi*n
aritm;ticaU= de (o contrario su .a(or ser2 ^e9presi*n_
La estructura de (a +rase 9 R y R1 puede escriBirse
^e9presi*n_ ::@ i+ ^identi+icador_ R ^identi+icador_ R 1 K pero para una
representaci*n mas genera( tenemos
5' ^e9presi*n_::@^e9presi*n aritm;tica_
Conceptos y Paradigmas de
Lenguajes (UNaM)
85
,e (a misma +orma con 9 ^ y podemos indicar
^e9presi*n Boo(eana_ ::@ ^identi+icador_ ^identi+icador_ pero se propone
8' ^e9presi*n Boo(eana_ ::@ ^e9presi*n aritm;tica_ ^ ^e9presi*n aritm;tica_
<' ^e9presi*n Boo(eana_ ::@ ^e9presi*n aritm;tica_ @ ^e9presi*n aritm;tica_
?' ^e9presi*n aritm;tica_ ::@ ^t;rmino_ R ^e9presi*n aritm;tica_
G' ^e9presi*n aritm;tica_ ::@ ^t;rmino_
Q' ^t;rmino_ ::@ ^identi+icador_
1P' ^t;rmino_ ::@ P
11' ^t;rmino_ ::@ 1
Conceptos y Paradigmas de
Lenguajes (UNaM)
88
1)' ^t;rmino_ ::@ (^e9presi*n_)
1-' ^identi+icador_ ::@ g
15' ^identi+icador_ ::@ 9
18' ^identi+icador_ ::@ y
Para simp(i+icar (a construcci*n de( 2rBo(
S ^dec(araci*n_
L ^parte iC3uierda_
E ^e9presi*n_
# ^identi+icador_
H ^e9presi*n Boo(eana_
A ^e9presi*n aritm;tica_
Conceptos y Paradigmas de
Lenguajes (UNaM)
8<
S ^dec(araci*n_
L ^parte iC3uierda_
E ^e9presi*n_
# ^identi+icador_
H ^e9presi*n Boo(eana_
A ^e9presi*n aritm;tica_
1' S [ L E
)' L [ #
-' E [ i+ H t/en A e(se E
5' E [ A
8' H [ A ^ A
<' H [ A @ A
?' A [ $ R A
G' A [ $
Q' $ [ #
1P' $ [ P
11' $ [ 1
1)' $ [ (E)
1-' # [ g
15' # [ 9
18' # [ y