You are on page 1of 13

UNIVERSIDAD DE GUADALAJARA

CC208 – LENGUAJES DE PROGRAMACION COMPARADOS.


LUNES Y MIERCOLES: 9:00 – 11:00 A.M.

1.4.1.3: Arboles de
Reconocimiento.
José Manuel Vargas Navarro (208267863)
1.4.1.3: Arboles de Reconocimiento.

Contenido
Integrantes de Equipo:.......................................................................................................................2
Arboles de Reconocimiento:..............................................................................................................3
Derivación por la izquierda.............................................................................................................3
Derivación por la derecha..............................................................................................................3
Árbol de derivación por la izquierda..............................................................................................4
Árbol de derivación por la derecha................................................................................................5
Análisis Sintáctico...............................................................................................................................6
Descendente..................................................................................................................................6
Ascendente....................................................................................................................................7
Gramática libre de contexto:..............................................................................................................8
Recursividad...................................................................................................................................8
Ambigüedad...................................................................................................................................8
Problemas......................................................................................................................................8
No Ambigüedad.............................................................................................................................9
Reglas de ambigüedad...................................................................................................................9
Asociatividad..................................................................................................................................9
Expresión gramatical......................................................................................................................9
Bibliografía.......................................................................................................................................10
Conclusiones:...................................................................................................................................11

José Manuel Vargas Navarro. 1


1.4.1.3: Arboles de Reconocimiento.

Integrantes de Equipo:

1. Silvia Verónica Guadalupe Guerrero Muñoz.

2. José Manuel Vargas Navarro.

José Manuel Vargas Navarro. 2


1.4.1.3: Arboles de Reconocimiento.

Arboles de Reconocimiento:

Un árbol de derivación o árbol sintáctico es una forma de describir gráficamente


cómo en una cierta gramática una cadena puede ser derivada desde el símbolo
inicial.

La forma más simple es listar las cadenas de símbolos consecutivas, comenzando


por el símbolo inicial y finalizando con la cadena y las reglas que han sido
aplicadas.

Hay dos tipos de derivación, el primero se llama derivación por la izquierda y


consta de estrategias de como reemplazar el terminal de más a la izquierda
primero, pero contrariamente si aplicamos reglas de forma que derivemos primero
el no terminal de la derecha le llamaremos derivación por la derecha, por ejemplo:

 AA-A
 A3

Y si queremos derivar la cadena “3 - 3 - 3”, el orden que usaríamos con derivación


por la izquierda seria: [(1), (1), (2), (2), (2)], mientras que si usamos derivación por
la derecha seria: [(1), (2), (1), (2), (2)]

Derivación por la izquierda Derivación por la derecha


 A → A - A (1)  A → A - A (1)
 A → A - A - A (1)  A → 3 - A (2)
 A → 3 - A - A (2)  A → 3 - A - A (1)
 A → 3 - 3 - A (2)  A → 3 - 3 - A (2)
 A → 3 - 3 - 3 (2)  A → 3 - 3 - 3 (2)

José Manuel Vargas Navarro. 3


1.4.1.3: Arboles de Reconocimiento.

Árbol de derivación por la izquierda

A 3

A '-'

A 3

A '-'

A 3

José Manuel Vargas Navarro. 4


1.4.1.3: Arboles de Reconocimiento.

Árbol de derivación por la derecha

A 3

A '-'

A 3

A '-'

A 3

José Manuel Vargas Navarro. 5


1.4.1.3: Arboles de Reconocimiento.

Análisis Sintáctico

Existen dos tipos de análisis sintáctico:

Descendente.

Análisis descendente: se parte de la raíz del árbol (símbolo inicial de la


gramática) y se van aplicando reglas por la izquierda obteniendo una
derivación por la izda. del símbolo inicial. Las hojas del árbol tendrán los tokens
que nos devuelve el analizador léxico.

José Manuel Vargas Navarro. 6


1.4.1.3: Arboles de Reconocimiento.

Ascendente

Análisis ascendente: se empieza por las hojas (tokens) y se van creando los
nodos intermedios hasta llegar a la raíz (símbolo inicial).

José Manuel Vargas Navarro. 7


1.4.1.3: Arboles de Reconocimiento.

Gramática libre de contexto:

Una gramática libre de contexto consta de estas partes:


 Un conjunto de símbolos no terminales {A, B, C, … S}
 Un conjunto de símbolos terminales {a, b, c, …}
 Un símbolo no terminal, llamado axioma S
 Un conjunto de reglas de producción de la forma A := α
G = { N, T, S, P}
N = { S, L}
T = { id, ‘,’ }
P={
S := L,
L := L , id
L := id
}

Recursividad

 Permite definir estructuras sintácticas complejas utilizando un número


pequeño de reglas de producción

Ambigüedad

 G es ambigua si el lenguaje que define contiene alguna frase para la que


exista más de un árbol de análisis sintáctico para G

Problemas

 La frase puede significar cosas diferentes

José Manuel Vargas Navarro. 8


1.4.1.3: Arboles de Reconocimiento.

 No es eficiente construir analizadores ambiguos

No Ambigüedad

 Sólo un árbol de análisis sintáctico por cada frase


 Es difícil reconocer la no ambigüedad

Reglas de ambigüedad

 Gramáticas con ciclos {S := A, S := a, A := S}


 Reglas de la forma {E := E…E}
 Caminos alternativos {S := A, S := B, A := B}
 Recursivas con ε en casos base {S:=HRS, S:=s,H:=h|ε, R:=r|ε}
 No terminales que derivan en ε {S:= HR, H:= h|ε, H:= h|ε}

Asociatividad

 La asociatividad de un operador binario define cómo se operan tres o más


operandos con dicho operador

Expresión gramatical

 Recursión a izquierdas -> Asociatividad a izquierdas


 Recursión a derechas -> Asociatividad a derechas

 Utilizar un no terminal por cada operador de precedencia


 Ubicar las reglas de producción referentes a los
 operadores de menor precedencia más cercanos al
 axioma de la gramática

José Manuel Vargas Navarro. 9


1.4.1.3: Arboles de Reconocimiento.

Bibliografía
mitecnologico. (s.f.). Obtenido de http://www.mitecnologico.com/Main/ArbolesDeDerivacion

UAH. (s.f.). Obtenido de


http://www2.uah.es/jcaceres/uploaded/teoria/LenguajesProgramacion/tema2.pdf

UPV. (s.f.). Obtenido de http://users.dsic.upv.es/~jsilva/uned/compiladores/Apuntes03I.pdf

José Manuel Vargas Navarro. 10


1.4.1.3: Arboles de Reconocimiento.

Conclusiones:

Por: Guerrero Muñoz Silvia Verónica Guadalupe

Los arboles sintácticos nos son muy útiles para diseñar lenguajes, dado que al
representar los procesos con estos, es más fácil interpretarlos. Su función es muy
importante, incluso para verificar el manejo de los token.

Se dividen en arboles sintácticos, arboles de análisis sintácticos, y árboles de


derivación.

Para el árbol sintáctico, cada elemento representa un nodo, las terminales son las
raíces y las no terminales siempre van al principio.

El árbol de análisis sintáctico sirve para representar la gramática de una frase o


proceso, y los no terminales van en nodos no terminales, así como las terminales,
van en nodos terminales.

Los arboles de derivación tienen dos técnicas: derivación por la izquierda y por la
derecha; basándose en reglas de escritura. La derivación se entiende como un
proceso de reescritura.

José Manuel Vargas Navarro. 11


1.4.1.3: Arboles de Reconocimiento.

Por: José Manuel Vargas Navarro.

Una gramática sintáctica sirve para generar palabras, consta de un alfabeto (los
terminales), símbolos no terminales, un símbolo de inicio, y unas reglas
generadoras.

Estas reglas se pueden representar por texto, o de una forma más práctica y
entendible, de manera gráfica, esto se hace con los Arboles de Reconocimiento, o
Arboles Sintácticos, depende de la manera en la que empecemos a generar los
terminales, ya sea de izquierda a derecha o de derecha a izquierda estos árboles
reciben un nombre: Árbol de derivación por la izquierda y árbol de derivación por
la derecha respectivamente.

Al empezar a crear reglas debemos de cuidar de que no se haga algo ambiguo, o


que tenga muchos significados, la recursividad de las reglas de generación puede
provocar esto, por eso es recomendable usar varios símbolos no terminales para
evitar estas confusiones. Por ejemplo vi unas reglas de generación de la siguiente
manera:

Sea una gramática cuyas reglas de producción son las siguientes:


 EE+E
 EE*E
 En
 E  (E)
Se pide el o los árboles sintácticos de 7+4*2

Esto puede crear ambigüedad por eso es mejor hacerlo con estas reglas:

 EE+T|T
 TT*F|F
 F  (E) | n

Con esto finalizo nuestro primer trabajo de investigación, se despide usted José
Manuel y Silvia Verónica

José Manuel Vargas Navarro. 12

You might also like