Introduccin:
Introduccin:
Es otra importante familia de lenguajes,
llamados Lenguajes de Contexto Libre,
abreviados de aqu en adelante como LCL
Conceptualmente, los lenguajes regulares
proporcionan la base terica para reconocer
los tokens de un lenguaje de programacin,
es decir los componentes atmicos como
palabras
reservadas,
identificadores,
smbolos especiales y otros similares.
Introduccin:
En tanto que los LCL constituyen el
fundamento para analizar la estructura de
oraciones
completas,
es
decir,
de
programas que observen una sintaxis
correcta.
As, usualmente las dos teoras se conjugan,
ya que la primera teora dar lugar a un
Analizador Lxico y la segunda a un
Verificador Sintctico en el contexto de
compiladores de Lenguajes de Programacin.
Introduccin
En captulos posteriores, se introducirn las
mquinas que reconocen este tipo de
lenguajes, mquinas que, desde luego, tendrn
que ser un poco ms complejas que los
Autmata Finitos empleados con los Lenguajes
Regulares.
Se utilizan estas mquinas para analizar ms
completamente la oracin, al descomponerla en
partes ms sencillas segn las reglas sintcticas
del lenguaje. Este proceso se denomina parsing
y a las mquinas que lo realizan usualmente se
les conoce como parsers.
EJEMPLO:
EJEMPLO
La gramtica: G = ( {A, B, S}, {a, b}, S, P) en donde P es el
conjunto de reglas de produccin, est dado por:
1.
S AB
2.
A aaA
3.
A
4.
B Bb
5.
B
Esta gramtica es, por definicin, una GCL. Es fcil percatarse
de que:
L(G) = { a2nbm | n 0, m 0}
(DEI)
(DED)
Ejemplo:
Ejemplo
Sea la gramtica: G = ( V, T, E, P ) en donde:
V = { E, L }
T = { a, b, c, +, *, (, ) }
P={
E
E
E
E
L
}
L
E+E
E*E
(E)
a|b|c
EJEMPLO
Sea la gramtica inducida por las siguientes reglas de produccin:
S SS | aSb | bSa |
Se probar que la oracin aabb es parte del lenguaje generado por
la gramtica, mediante un parsing por generacin exhaustiva. Sin
embargo, se emplear la tcnica no tan ciegamente, pues se
descartarn algunas posibilidades que luzcan notoriamente
improcedentes, lo cual se explicar a continuacin.
Primero, se generan todas las derivaciones de largo 1:
S SS
S aSb
S bSa
S
SS
SS
SS
SS
SSS
aSbS
bSaS
S
aSb
aSb
aSb
aSb
aSSb
aaSbb
abSab
ab
Ejemplos y ejercicios
Encuentre GCL que generen los siguientes
lenguajes:
L = { wwR | w {a, b}* }
Solucin:
S aSa | bSb |
L = { anbm | n m+3 }
Solucin:
S aSb | a | aa | aaa