Professional Documents
Culture Documents
ARBOLES SINTACTICOS
1.
2.
DEFINICION
DERIVACIONES POR LA
IZQUIERDA / DERECHA
CONCEPTOS DE ARBOLES
GENERALES
4.
RECORRIDOS DE UN ARBOL
5.
GRAMATICAS AMBIGUAS
6. TIPOS GENERALES DE
ANALIZADORES SINTACTICOS
FORMA DE PROCESAR LA
CADENA DE ENTRADA
NUMEROS DE ALTERNATIVAS
POSIBLES EN UNA DERIVACION
ANALIZADOR UNIVERSAL
ANALIZADOR ASCENDENTE
ANALIZADOR DESCENDENTE
1. DEFINICION
La estructura sintctica de los lenguajes de
programacin se especifican mediante Gramticas
Libres de Contexto (GLC). Analizar
sintcticamente una cadena de tokens es encontrar
para ella un rbol sintctico, que tenga como rz el
smbolo inicial de la GLC y mediante la aplicacin
sucesiva de sus reglas de derivacin se puede
alcanzar dicha cadena como hojas del rbol sintctico.
EJEMPLO
PRINCIPIO
2. DERIVACIONES POR LA
IZQUIERDA / DERECHA
Las reglas de derivacion desde el smbolo inicial hasta
alcanzar la sentencia a reconocer, reemplazan los
smbolos NT tomando el de ms a la izquierda o el de
ms a la derecha. Habitualmente se trabaja
con derivaciones ms a la izquierda.Todo rbol de
anlisis sintctico tiene asociado una derivacion
izquierda y una nica derivacin derecha. Sin
embargo una sentencia de un lenguaje puede dar
PRINCIPIO
3. CONCEPTOS DE ARBOLES
GENERALES
En principio podemos considerar la estructura de rbol
de manera intuitiva como una estructura jerrquica.Por
tanto,para estructurar un conjunto de elementos ei en
rbol, deberemos escoger uno de ellos e1 al que
llamaremos raz del rbol.Del resto de los elementos
se selecciona un subconjunto e2,...,ek estableciendo
una relacin padre-hijo entre la raz y cada uno de
dichos elementos de manera que e1 es llamado el
padre de e2,de e3,...ek y cada uno de ellos es llamado
4. RECORRIDOS DE UN ARBOL
En una estructura lineal resulta trivial establecer un
criterio de movimiento por la misma para acceder a los
elementos, pero en un rbol esa tarea no resulta tan
simple.No obstante, existen distintos mtodos tiles en
que podemos sistemticamente recorrer todos los
1. El
2. El
3. El
1. Listado
preorden.
A=Ar=rAvAs=rvAuAwAs= rvuAwAs=rvuwAxAyAzAs=
rvuwxAyAzAs=rvuwxyAzAs=rvuwxyzAs=rvuwxyzsAp
Aq=rvuwxyzspAq=rvuwxyzspq.
2. Listado
postorden.
A=Ar=AvAsr=AuAwvAsr= uAwvAsr=uAxAyAzwvAsr=
uxAyAzwvAsr=uxyAzwvAsr=uxyzwvAsr=
uxyzwvApAqsr=uxyzwvpAqsr=uxyzwvpqsr.
3. Listado
inorden.
A=Ar=AvrAs=AuvAwrAs=
uvAwrAs=uvAxwAyAzrAs=uvxw
AyAzrAs=uvxwyAzrAs=uvxwyzrAs=
uvxwyzrApsAq=uvxwyzrpsAq=uvxwyzrpsq.
Por ltimo,el listado por niveles de este rbol es el
siguiente:r,v,s,u,w,p,q,x,y,z.
Finalmente es interesante conocer que un rbol no
puede,en general,recuperarse con uno solo de sus
recorridos.Por ejemplo:Dada la lista en
inorden:vwyxzrtupsq,los rboles de la figura 4 tienen
ese mismo recorrido en inorden.
PRINCIPIO
5. GRAMATICAS AMBIGUAS
Una sentencia generada por una gramatica es
ambigua si existe ms de un rbol sintctico para ella.
una gramatica es ambigua si genera al menos una
sentencia ambigua, en caso contrario es no ambigua.
El grado de ambiguedad de una sentencia se
caracteriza por el nmero de rboles sintcticos
distintos que la generan. La ambiguedad de una
gramtica es una propiedad indecidible.
PRINCIPIO
6. TIPOS GENERALES DE
ANALIZADORES SINTACTICOS
6.1 FORMA DE PROCESAR LA CADENA DE
ENTRADA
o
Mtodos direccionales:
Procesan la cadena de entrada smbolo a
smbolo de izquierda a derecha
Mtodos no-direccionales:
Acceden a cualquier lugar de la cadena de
entrada para construir el rbol. Necesitan
tener toda la cadena de componentes lxicos
en memoria para que el anlisis pueda
comenzar
Mtodos deterministas:
Dado un smbolo de la cadena de entrada se
puede decidir en cada paso cual es la
alternativa/derivacin adecuada a aplicar
Mtodos no-deterministas: