Sunteți pe pagina 1din 8

1

Matem Matem ticas ticas


Discretas Discretas
Lenguajes y
Gramticas
Lenguajes y Gramticas
Tenemos dos clases de lenguaje:
Lenguaje Natural
Lenguaje Formal
Gramticas y
Lenguajes
De acuerdo al diccionario Webster, un lenguaje es un cuerpo
de palabras y mtodos de combinacin de palabras utilizado,
y comprendido por una comunidad de tamao considerable,
tales lenguajes se llaman Lenguajes Naturales.
Los Lenguajes Formales se utilizan para modelar los lenguajes
naturales y para comunicarse con las computadoras.
Gramticas y
Lenguajes
Cont
Definicin:
Sea A un conjunto finito. Un lenguaje (formal) L sobre A es un
subconjunto de A*, el conjunto de todas las cadenas sobre A.
Por Ejemplo
Sea A = {a , b}.
a) El conjunto L de todas las cadenas sobre A que contiene un
nmero impar de letras a es un lenguaje sobre A.
b) L es precisamente el conjunto de cadenas sobre A aceptadas
por el autmata de estado finito.
c) Una forma de definir un lenguaje es dar una lista de reglas
(gramtica) que ste debe cumplir.
Escribimos G=(N, T, P, )
Gramticas y
Lenguajes
Lenguaje Formal
2
Gramticas y
Lenguajes
Gramtica Simple
Definicin:
Una gramtica con estructura de frases (o simplemente
una gramtica) G consta de:
a) Un conjunto finito N de smbolos no terminales.
b) Un conjunto finito T de smbolos terminales, donde NT=.
c) Un subconjunto finito P de [(NT)*-T*] x (NT)*,llamado el
conjunto de producciones.
d) Un smbolo inicial N.
Generalmente, una produccin (A,B) P se escribe:
A B
A debe incluir al menos un smbolo no Terminal, mientras que B
puede constar de cualquier combinacin de smbolos terminales y
no terminales.
Gramticas y
Lenguajes
Cont
Ejemplo 1:
Sean:
N = {, S}
T = {a, b}
P = { b , aS,S bS, S b}
Entonces G = (N, T, P ,) es una gramtica.
Podemos construir un Lenguaje L(G) a partir de una gramtica G.
Se usan las producciones para deducir las cadenas que forman el
leguaje.
A partir del smbolo inicial se utilizan (remplazan) varias veces las
producciones hasta obtener una cadena de smbolos terminales (T).
El lenguaje L(G) es el conjunto de todas las cadenas que se
obtienen.
Gramticas y
Lenguajes
Derivacin
Definicin:
Sea G=(N,T,P, ) una gramtica.
Si es una produccion y x y (NT)*, decimos que x y se
deriva directamente de x y y escribimos
x y x y
Si
i
(NT)* para i=1,.....,n y
i
+1 se deriva directamente de
i
para
i=1,...,n-1, decimos que
n
se deriva de
i
y escribimos

i

n
Decimos que
n
es la derivacin de
i

1

2

n
El lenguaje generado por G, denotado L(G), consta de todas las cadenas
sobre T derivables de .
Cont
Ejemplo 2:
Sea G la gramtica
N={,S}
T={a,b}
P={ b , aS,S bS, S b}
G={N,T,P,}
La cadena abSbb se deriva directamente de aSbb, lo cual se
escribe
aSbb abSbb
La cadena bbab se deriva de :
b bb bbaS bbab
Gramticas y
Lenguajes
3
Gramticas y
Lenguajes
Cont
ContEjemplo 2:
Las nicas derivaciones de son:
b

b
n
n0
b
n
aS

b
n
ab
m-1
S
b
n
ab
m
S n0, m1
As, L(G) consta de las cadenas sobre {a,b} que
contienen precisamente una a y terminan con b.
Gramticas y
Lenguajes
Gramtica BNF
(Forma normal de Backus)
Es una forma alternativa de establecer las
producciones de una gramtica.
Los smbolos no terminales comienzan con < y
terminan con>.
La produccin S T se escribe S ::= T
Se puede tener S ::= T
1
| T
2
| T
3
| T
4 .
| T
n
La barra | se lee o
Gramticas y
Lenguajes
Cont
Ejemplo 3:
Un entero se define como una cadena que consta de un signo
opcional (+ o -) seguido de una cadena de dgitos (0 a 9). La
siguiente gramtica genera a todos los nmeros enteros.
<dgito> ::=0|1|2|3|4|5|6|7|8|9
<entero> ::=<entero con signo>|<entero sin signo>
<entero con signo> ::=+<entero sin signo>|-<entero sin signo>
<entero sin signo> ::=<dgito>|<dgito><entero sin signo>
El smbolo inicial es <entero>
La derivacin del entero -901
<entero> <entero con signo>
-<entero sin signo>
-<dgito><entero sin signo>
-<dgito><dgito><entero sin signo>
-<dgito><dgito><dgito>
-9<dgito><dgito>
-90<dgito>
-901.
Gramticas y
Lenguajes
Cont
Ejemplo 4:
Escriba una gramtica BNF para el conjunto de nmeros con
decimales (por ej: 487.34 o 8.3)
<digito>::=0|1|2|3|4|5|6|7|8|9
<numero>::=<digito>|<digito><numero>
<numero decimal>::=<numero>.<numero>
Para sta gramtica:
T = {0,1,2,3,4,5,6,7,8,9,.}
N = {digito, numero, numero decimal}
4
Gramticas y
Lenguajes
Cont
Ejemplo 5:
Escriba una gramtica BNF para el conjunto de nmeros enteros
con signo.
<digito>::=0|1|2|3|4|5|6|7|8|9
<numero>::=<digito><numero> | <digito>
<signo>::=+ | -
<numero con signo>::=<signo><numero>
Para esta gramtica:
T={0,1,2,3,4,5,6,7,8,9,+,-}
N={digito, numero, signo, numero con signo}
Gramticas y
Lenguajes
Tipos de Gramticas
Las gramticas se clasifican por los tipos de producciones que
las definen.
Definicin:
Sea G una gramtica y la cadena nula.
a) Si cada produccin es de la forma
A , donde , (N T)*, A N, (N T)*, - {}.
Entonces G es una gramtica sensible al contexto (o de tipo 1).
b) Si cada produccin es de la forma.
A , donde A N, (N T)*,
Entonces G es una gramtica libre de contexto (o de tipo 2).
c) Si cada produccin es de la forma.
A o A B o A donde A,B N, T,
Entonces G es una gramtica regular (o de tipo 3).
Gramticas y
Lenguajes
Tipos de Gramticas
En una gramtica sensible al contexto
Se puede remplazar A por si A est en el contexto de y
En una gramtica libre de contexto
Establece que podemos remplazar A por en cualquier momento.
En una gramtica regular
Se tienen reglas de sustitucin particularmente sencillas:
Remplazamos un smbolo no terminal por
un smbolo terminal
un smbolo terminal seguido de un smbolo no terminal
la cadena nula
Observe que una gramtica regular es una gramtica libre de contexto y una
gramtica libre de contexto sin producciones de la forma A es una
gramtica sensible al contexto
Gramticas y
Lenguajes
Cont
Gramtica sensible al contexto
Ejemplo 6:
La gramtica G definida por T = {a, b, c}, N = {, A, B, C, D, E}, smbolo
inicial y con producciones
aAB, aB, A aAC, A aC, B Dc,
D b, CD CE, CE DE, DE DC, Cc Dcc,
En la produccin CE DE podemos reemplazar C con D si C va seguida de E y
En la produccin Cc Dcc podemos reemplazar C con Dc si C va seguida de c.
Podemos derivar DC de C, pues CD CE DE DC
La cadena a
3
b
3
c
3
esta en L(G), pues tenemos
aAB aaACB aaaCCDc aaaDCCc aaaDCDcc
aaaDDCcc aaaDDDccc aaabbbccc
Se puede mostrar que L(G)= { a
n
b
n
c
n
| n =1,2,}
5
Gramticas y
Lenguajes
Cont
Lenguaje sensible al contexto
Definicin:
Un lenguaje L es sensible al contexto (respectivamente
Libre de contexto, regular) si existe una gramtica G
sensible al contexto tal que L = L(G).
Continuacin ejemplo 6:
De acuerdo con el ejemplo anterior, el lenguaje
L = L(G)= { a
n
b
n
c
n
| n =1,2,}
Se puede mostrar que no existe una gramtica libre de
contexto G tal que L = L(G); por tanto, L no es un lenguaje
libre de contexto.
Gramticas y
Lenguajes
Cont
Gramtica libre al contexto
Ejemplo 7:
La gramtica G definida por T = {a,b}, N = {}, smbolo inicial
y con producciones
ab, ab,
Las nicas derivaciones de son
ab
.
a
n-1
b
n-1
a
n-1
ab b
n-1
= a
n
b
n
As, L(G) consta de las cadenas sobre {a,b} de la forma a
n
b
n
,
n= 1,2,.
Este lenguaje es libre de contexto.
Gramticas y
Lenguajes
Cont
Gramtica regular
Ejemplo 8:
Sean:
N = {, S}
T = {a, b}
P = { b , aS,S bS, S b}
Entonces G = (N, T, P ,) es una gramtica.
L(G) = {b
n
ab
m
| n= 1,2,.; m= 1,2,. }
Este lenguaje, generado por la gramtica regular, es
regular.
Gramticas y
Lenguajes
Cont
Definicin:
Las gramticas G y G son equivalentes si L(G) = L(G).
Ejemplo 9:
Si definimos una relacin R sobre un conjunto de
gramticas mediante la regla de G R G si G y G son
equivalentes, R es una relacin de equivalencia. Cada
clase de equivalencia consta de un conjunto de gramticas
equivalentes entre s.
6
Gramticas y
Lenguajes
Gramtica de Lindenmayer
Definicin 1:
Una gramtica de Lindenmayer interactiva libre de
contexto consta de:
Un conjunto finito N de smbolos no terminales.
Un conjunto finito T de smbolos terminales, donde NT=
Un conjunto finito P de producciones A B, donde A (N
T) y B (N T)*.
Un smbolo inicial N.
La diferencia entre una gramtica de Lindermayer interactiva
libre de contexto y una gramtica libre de contexto es que la
primera permite el uso de producciones de la forma A B
donde A es un smbolo terminal o no terminal.
Gramticas y
Lenguajes
Cont
Definicin 2:
Sea G =(N, P, T,) una gramtica de Lindenmayer interactiva libre de
contexto. Si
= x
1
x
n
Y existen producciones x
i

i
En P, para i = 1,,n, escribimos

i
,,
n
Decimos que
i
,,
n
es derivable de manera directa de . Si
i+1
es
derivable de manera directa de
i
para i = 1,,n-1, decimos que
n
es derivable de
1
y escribimos

n
Decimos que
1

n
es la derivacin de
n
(a partir de
1
). El lenguaje generado por G,
denotado por L(G), consta de todas las cadenas de sobre T
derivables a partir de .
Gramticas y
Lenguajes
Cont
Ejemplo 10:
Sean
N = {D}
T = {d,+,-}
P = {D D D + + D D, D d, + +, }
Consideramos a G (N, T, P, D) como una gramtica
Lindenmayer interactiva libre de contexto.
Como un ejemplo de derivacin D, tenemos
D D D + + D D d d + + d d
As, d d + + d d L(G).
Gramticas y
Lenguajes
Cont
Cont
Ahora daremos un significado a las cadenas de L(G).
Interpretamos el smbolo:
d como una instruccin para trazar una lnea recta de una
longitud fija en la direccin actual;
+ como una instruccin para girar 60hacia la derecha;
como una instruccin para girar 60hacia a la izqui erda.
Si comenzamos del lado izquierdo y el primer movimiento es horizontal y
hacia la derecha, la interpretacin de la cadena d-d++d-d produce la
siguiente curva fractal
7
Copos de nieve de von Kock
Gramticas y
Lenguajes
Cont
Cont
La siguiente cadena ms larga en L(G) es
d - d + + d - d - d - d + + d - d + + d - d + + d - d - d - d + + d - d
Gramticas y
Lenguajes
Gramticas para Expresiones
Ejemplo 10:
Si S es un conjunto de palabras entonces S* es la
coleccin de todas las oraciones posibles formadas por
las palabras de S.
Estas oraciones no necesariamente tienen un sentido o
estructura aparente.
Un lenguaje es una especificacin completa:
1. Deben existir un conjunto S con todas las palabras que se
consideran parte del lenguaje.
2. Hay que designar un subconjunto de S* como el conjunto
de las oraciones con construccin adecuada en el
lenguaje.
3. Hay que determinar cuales de las oraciones con
construccin adecuada tienen significado y cual es este.
Gramticas y
Lenguajes
Cont
Cont
La oracin siguiente es una cadena en S*, pero no tiene una
construccin adecuada (la disposicin de los sustantivos y los verbos no
es valida).
Iba a la tienda Juan Jorge a cantar
La siguiente oracin tiene una construccin adecuada pero carece de
sentido.
Los sonidos azules se sientan y cruzan la pierna bajo la cima de la
montaa
En un lenguaje:
Sintaxis: regula la construccin adecuada de las oraciones.
Semntica: se encarga del significado de las oraciones.
En un lenguaje de programacin lo que se ensea es la sintaxis.
Gramticas y
Lenguajes
Cont
Gramtica para estructura de oraciones
G = (V, S , v
o
, ), donde
V es un conjunto finito,
S un subconjunto de V,
v
0
V- S y
es una relacin finita en V*
S es el conjunto de todas las palabras permitidas en el
lenguaje, y
V consta de S adems de algunos otros smbolos.
El elemento v
o
de V es un punto de partida para las
sustituciones.
Por ultimo la relacio sobre V* especifica los reemplazos
permisibles.
8
Gramticas y
Lenguajes
Cont
Ejemplo 11:
Si G = (V, S , vo, )
S es el conjunto de smbolos terminales y
N = V S es el conjunto de smbolos no terminales
Sea
S = { Juan, Julia, maneja, corre, descuidadamente, rpido,
frecuentemente }
N = {oracin, sujeto, predicado, verbo, adverbio }
V = S U N .
v
o
= oracin y
Gramticas y
Lenguajes
Cont
Cont
supngase que la relacin en V* queda descrita
enumerando todas las producciones como sigue
Oracin sujeto predicado
Sujeto Juan
Sujeto Julia
Predicado verbo adverbio
Verbo maneja
Verbo corre
Adverbio descuidadamente
Adverbio rpido
Adverbio frecuentemente
Gramticas y
Lenguajes
Cont
Cont
El conjunto S contiene todas las palabras permitida en el lenguaje.
Se afirma que la oracin Julia maneja frecuentemente que esta
denotada por w, es una oracion permisible o con sintaxis correcta,
deacuerdo con las reglas de este lenguaje.
Para demostrar esto, considerese la siguiente serie de cadenas en V*.
Oracin
Sujeto predicado
Julia predicado
Julia verbo adverbio
Julia maneja adverbio
Julia maneja frecuentemente
Por definicin w tiene sintaxis correcta, ya que en este ejemplo v
o
es una
oracin.
En las gramticas para estructura de oraciones, la bsqueda de una sintaxis
correcta se refiere solo al proceso mediante el cual al formar una oracin se
procura que esta sea correcta gramaticalmente hablando, y nada mas.

S-ar putea să vă placă și