Está en la página 1de 4

INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS

INGENIERÍA EN SISTEMAS COMPUTACIONALES


LENGUAJES Y AUTÓMATAS II
REPORTE DE PRÁCTICAS/TAREAS
Practica/Tarea:07
NOMBRE: Fecha: 07/09/2019
UNIDAD: 1 Análisis semántico Grupo: 7C

1.1 Árboles de expresiones sintácticos.

Conceptos
I. Un árbol de análisis sintáctico muestra, en forma gráfica, la manera en que el símbolo
inicial de una gramática deriva a una cadena en el lenguaje. Si el no terminal 𝐴 tiene una
producción 𝐴 → 𝑋𝑌𝑍, entonces un árbol de análisis sintáctico podría tener un nodo
interior etiquetado como 𝐴, con tres hijos llamados 𝑋, 𝑌 y 𝑍, de izquierda a derecha:

II. Un árbol de análisis sintáctico es una representación gráfica de una derivación que filtra el
orden en el que se aplican las producciones para sustituir los no terminales. Cada nodo
interior de un árbol de análisis sintáctico representa la aplicación de una producción. El
nodo interior se etiqueta con el no terminal A en el encabezado de la producción; los hijos
del nodo se etiquetan, de izquierda a derecha, mediante los símbolos en el cuerpo de la
producción por la que se sustituyó esta A durante la derivación.

III. Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos.
Los datos se almacenan en una estructura con forma de árbol. Cada nodo del árbol de
expresión representa una expresión, por ejemplo, una llamada al método o una operación
binaria, como x < y.

Un árbol de expresión sirve para evaluar expresiones del tipo: (a + b)*c/d

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II

Generalidades / Terminologías
Es una estructura jerárquica en la cual se registran las operaciones que realiza el programa fuente,
en cada una de las ramas del árbol se registra el valor o significado que este debe tener y el
análisis ayuda a descubrir cuál de los valores registrado en las ramas es aplicable. Los árboles de
expresiones presentan el código de nivel de lenguaje en forma de datos. Los datos se almacenan
en una escritura con forma de árbol. Cada nodo del árbol de expresión representa una expresión,
por ejemplo, una llamada al método o una operación binaria, como x < y.

De manera formal, dada una gramática libre de contexto, un árbol de análisis sintáctico de
acuerdo con la gramática es un árbol con las siguientes propiedades:

1. La raíz se etiqueta con el símbolo inicial.


2. Cada hoja se etiqueta con un terminal, o con 𝜖.
3. Cada nodo interior se etiqueta con un no terminal.
4. Si A es el no terminal que etiqueta a cierto nodo interior, y𝑋1 , 𝑋2 , . . . , 𝑋𝑛 son las
etiquetas de los hijos de ese nodo de izquierda a derecha, entonces debe haber una
producción 𝐴 → 𝑋1 , 𝑋2 , . . . , 𝑋𝑛 . Aquí, cada una de las etiquetas 𝑋1 , 𝑋2 , . . . , 𝑋𝑛
representa a un símbolo que puede ser o no un terminal. Como un caso especial, si
𝐴→ 𝜖
Las estructuras de datos tipo árbol figuran de manera prominente en la compilación.

 Un árbol consiste en uno o más nodos. Los nodos pueden tener etiquetas, que, por lo
general, serán símbolos de la gramática. Al dibujar un árbol, con frecuencia representamos
los nodos mediante estas etiquetas solamente.
 Sólo uno de los nodos es la raíz. Todos los nodos, excepto la raíz, tienen un padre único; la
raíz no tiene padre. Al dibujar árboles, colocamos el padre de un nodo encima de ese nodo
y dibujamos una línea entre ellos. Entonces, la raíz es el nodo más alto (superior).
 Si el nodo N es el padre del nodo M, entonces M es hijo de N. Los hijos de nuestro nodo se
llaman hermanos. Tienen un orden, partiendo desde la izquierda, por lo que, al dibujar
árboles, ordenamos los hijos de un nodo dado en esta forma.
 Un nodo sin hijos se llama hoja. Los otros nodos (los que tienen uno o más hijos) son
nodos interiores.
 Un descendiente de un nodo N es ya sea el mismo N, un hijo de JV, un hijo de un hijo de N,
y así en lo sucesivo, para cualquier número de niveles. Decimos que el nodo N es un
ancestro del nodo M, si M es descendiente de N.

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
Ejemplos
I. Árbol de análisis sintáctico para 9-5+2, de acuerdo con la gramática 𝑙𝑖𝑠𝑡𝑎 → 𝑙𝑖𝑠𝑡𝑎 +
𝑑𝑖𝑔𝑖𝑡𝑜 la raíz se etiqueta como lista, los hijos de la raíz se etiquetan, de izquierda a
derecha, como lista, + y dígito. El hijo izquierdo de la raíz es similar a la raíz, con un
hijo etiquetado como - en vez de +. Los tres nodos etiquetados como dígito tienen
cada uno un hijo que se etiqueta mediante un dígito.

II. Árbol de análisis sintáctico para — (id + id)


Las hojas de un árbol de análisis sintáctico se etiquetan mediante no terminales o
terminales y, leídas de izquierda a derecha, constituyen una forma de frase, a la cual
se le llama producto o frontera del árbol. Para ver la relación entre las derivaciones y
los árboles de análisis sintáctico, considere cualquier derivación
𝑎1 ⇒ 𝑎2 ⇒ ⋯ ⟹ 𝑎𝑛 , en donde 𝑎1 es un sólo no terminal 𝐴. Para cada forma
de frase 𝑎𝑖 en la derivación, podemos construir un árbol de análisis sintáctico cuyo
producto sea 𝑎𝑖 El proceso es una inducción sobre 𝑖 .

BASE: El árbol para 𝑎1 = 𝐴 es un solo nodo, etiquetado como 𝐴

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza
INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS
INGENIERÍA EN SISTEMAS COMPUTACIONALES
LENGUAJES Y AUTÓMATAS II
III. Dos árboles de análisis sintáctico para id + id * id
Los árboles de análisis sintáctico correspondientes aparecen en la figura 4.5. Observe
que el árbol de análisis sintáctico del árbol (a) refleja la precedencia que se asume
comúnmente para + y *, mientras que el árbol del árbol (b) no. Es decir, lo común es
tratar al operador * teniendo mayor precedencia que +, en forma correspondiente al
hecho de que, por lo general, evaluamos la expresión a + b * c como a + (b * c), en vez
de hacerlo como (a + b) * c.

REFERENCIAS
Del Libro Compiladores – principios, técnicas y herramientas 2da Edición de Alfred V. Aho, Monica
S. Lam, Ravi Sethi y JefFrey D. Ullman

http://itpn.mx/recursosisc/7semestre/leguajesyautomatas2/Unidad%20I.pdf

https://www.clubensayos.com/Tecnolog%C3%ADa/UNIDAD-1-AUTOMATAS-2/2226803.html

TECNOLÓGICO NACIONAL DE MÉXICO Docente:


INSTITUTO TECNOLÓGICO SUPERIOR DE COATZACOALCOS José Eduardo Ríos Mendoza

También podría gustarte