Académique Documents
Professionnel Documents
Culture Documents
Gramáticas
Lenguaje (Grassmann)
Lenguaje (Chombsky)
Otras definiciones
Símbolo
• Es una entidad abstracta :
– Ejemplo: A, 7, $, (, etc
Alfabeto ( )
• Cualquier conjunto finito y no
vacio de elementos que
denominaremos símbolos
– Ejemplo:
b ={ 0, 1}
v ={ a, e , i , o , u }
LENGUAJE
Cadena
• Secuencia finita de símbolos del
alfabeto
- Ejemplo:
0, 1, 101, 1100 pertenecen a b
Ejemplo:
* b ={ , 0, 1, 101, 10,..}
Por ejemplo en L = { an bn / n 1 }
queremos indicar que las palabras
que constituyen el lenguaje son
todas las que estan formadas por
símbolos a seguidos de símbolos b
en igual número.
DEFINICION DE
GRAMATICA
G = ( Vn , Vt , P, S )
G = ( Vn , Vt , P, S )
SIMBOLO SIGNIFICADO
El esquema de la derecha desarrolla el elemento de la izquierda
| de alternativa (se puede elegir únicamente uno de los elementos que
separa). Las reglas AaA y AbB se convierten en AaA | bB
{} de repetición (los elementos que incluyen, pueden repetirse cero o más
veces), se usa tambien * o el +
[] de opción (los elementos que incluyen pueden utilizarse o no). Son
expresiones diferentes A | B+ y [A | B]+
() de agrupación (sirven para agrupar los elementos que incluyen)
GRAMATICA EJEMPLO
Reconocimiento de un identificador:
P={ P={
A L (L / D)* AL M
L A/B/…./Z/a/b/…/z ML M / DM /
D0/1/…./9 L A/B/…./Z/a/b/…/z
} D0/1/…./9
}
PALAb r a 9 AL M
PLM
PALM
PALLM
PALAL M
PALAb L M
A L (L / D)* PALAb r L M
PALAb r a DM
PALAb r a 9
GRAMATICA CON Vn CON MAS DE UN
CARACTER
Reconocimiento de un identificador:
P={ P={
AL M <Id><Letra> <MasSimb>
ML M / D M / <MasSimb> <Letra> <MasSimb> /
L A/B/…./Z/a/b/…/z <MasSimb> <Digito> <MasSimb> /
D0/1/…./9 <Letra> A/B/…./Z/a/b/…/z
} <Digito>0/1/…./9
}
GRAMATICA CON Vt CON MAS DE UN
CARACTER
P={
<S> int <Id> <otro>
<otro> , <Id> <otro> /
<Id><Letra> <Mas>
<Mas> <Letra> <Mas> /
<Mas> <Digito> <Mas> /
<Letra> A/B/…./Z/a/b/…/z
<Digito>0/1/…./9
}
GRAMATICA HASTA UN NIVEL LEXICO
<Letra> <Mas>
, <id> <otro>
<Letra> <Mas>
<Letra> <Mas>
<Digito> <Mas>
b
c a 8
GRAMATICA HASTA UN NIVEL
SINTACTICO
Se describen los
G= ( Vn, Vt, S, P) lexemas hasta el
Vn={S, Mas } detalle,..en este
Vt={ id, int, , } caso G describe
como se forman los
P={ identificadores
<S> int id <Mas>
<Mas> , id <Mas> /
}
RECONOCIMIENTO
a , id <Mas>
cantidad
FORMA GRAMATICAL CORRECTA
Secuencias a reconocer
L(G)={ an bm / n impar y m par}
G=(Vn, Vt, P, S)
Vn={ S, A, B} Vt={ a, b}
P={ SaAbbB abb aaaaaaabbbb
AaaA / S S
BbbB/
}
aAbbB aAbbB
aaA bbB
aaA
aaA
FORMA GRAMATICAL NO CORRECTA
aAbbB aAbbB
aA bB aA bB
aA bB
JERARQUIA DE CHOMSKY
A aB
B a
con A,B Vn , a Vt U { }
TIPO 3:
Gramatica regular/ racional / Kleene
A Ba
B a
con A,B Vn , a Vt U { }
TIPOS DE GRAMATICA
TIPO 2:
Gramática Libre del Contexto / algebraicas /
incontextuales ( G.L.C)
A , A Vn , ( Vn Vt )*
Observación:
Toda gramática de tipo 3 es tambien de tipo 2
Equivale en cuanto a potencia descriptiva, al autómata
con pila o Pushdown
TIPOS DE GRAMATICA
TIPO 1:
Gramática Sensible al Contexto / Contextuales Este tipo de producciones,
implica que las sustituciones
aAb aBb sólo pueden efectuarse en
donde cierto contexto (el símbolo 'A'
A Vn se podrá sustituir por '
a, b (Vn Vt)* ' B ' si y sólo si, está precedido
B (Vn Vt)+ por ’a', y le sigue ‘b'), esto es,
son gramáticas dependientes
Definicion alternativa (sensibles) al contexto
con | | | |
, ( Vn Vt ) +
TIPOS DE GRAMATICA
TIPO 0:
Gramática sin restriccion / Estructura de frase
G1
S aSa | que es de tipo 2 y también por
G2
S aA |
A aS que es de tipo 3
r : Vn ( Vn Vt )*
G.L.C
Dada G=( Vn, Vt, P, E)
Vn={ E } Vt = { +, *, a, ( , ) }
P={ E E+E
E E*E
E (E)
Ea }
La secuencia:
FORMA SENTENCIAL
G.L.C
Arbol de derivación
E*E
E+E
a a a
G.L.C. AMBIGUA
Una gramática G es
ambigua si hay al menos
una cadena en L(G) que
tenga dos o mas árboles de
derivación distintos.
E E
E*E E + E
E +E E*E
a a a a a a
G.L.C. AMBIGUA
Recomendación
Para algunos tipos de
analizadores sintácticos es
preferible que la gramática no
sea ambigua pues si lo fuera, no
se podría determinar de manera
exclusiva que árbol de análisis
sintáctico seleccionar para una
frase
G.L.C. AMBIGUA
Eliminar la
ambiguedad
+
A A , ( Vn Vt ) * , A Vn
AA|
Se sustituye AA| por las producciones no
recursivas por la izquierda
A A’ A , A’ Vn
A’ A’ | a , ( Vn Vt ) *
EJEMPLO
B1 YAB|XZ
B2 XYZ
B1 YAB|XZ
B2 XYZ
Tenemos
X A B Z |X Z Z
Hay
recursividad
GRAMATICA
SIN RECURSION
AA|
X A B Z |X Z Z A A’
A’ A’ |
X ABZX'
X´ Z Z X ' |
EJERCICIOS
Genere una gramática para los siguientes casos:
3. L = { aN c bN / N ≥0}
4. L= { aN bN / N >0}
5. L= { aN bN cN / N >0}
6. L= { aN bM cN+M / N,M >0}
EJERCICIOS
7. L= { aN bN cN / N >0}
dato, a, b: integer;
cant, x: real;
Total: real;
EJERCICIOS
a) S abB b) SAb c) S aB
B cb ABc Bb BaB
B B
d) S aBbB e) SA f) S aB
BcBA AB B bA
BAaab Bab A
A a
g) SSa h) SBbA i) SaBb
SbS BbabA B
S AabBA BbB
SOLUCION
L= { aN bN cN / N >0} S S
Vn={ S, R, Q} ↓ ↓
Vt={ a, b, c } aRQ aSRQ
↓ ↓
P={ SaSRQ / aRQ
abQ aaRQRQ
QR RQ
↓ ↓
aRab abc aabQRQ
bR bb ↓
bQbc aabRQQ
cQcc } ↓
aabbQQ
↓
aabbcQ
↓
aabbcc
LABORATORIO
Defina la gramática de su
lenguaje
La gramática no debe incluir
instrucciones recursivas.
Incluya también en su trabajo
el lenguaje definido en la
anterior clase para poder
comparar.
Enviar la gramática a:
zorroculto69@hotmail.com