You are on page 1of 6

INSTITUTO TECNOLGICO SUPERIOR

DE ALVARADO
INGENIERA EN SISTEMAS
COMPUTACIONALES
Materia:
LENGUAJES Y AUTMATAS II

Semestre-Grupo:
SEPTIMO SEMESTRE GRUPO UNICO

Producto Acadmico:
SOLUCIN DE EJERCICIOS ARBOLES DE EXPRESIONES

Presenta:
ALEJANDRA KIKEY JIMNEZ MEDINA 116Z1168

Docente:
I.S.C. GABRIELA HERNNDEZ CRUZ

H. Y G. ALVARADO, VER. AGO-2014/ENE-2015

Pgina
1

Pgina
2

INTRODUCCIN
Ya hemos pasado por las etapas de anlisis lxico, sintctico y semntico, ahora
viene la etapa de generador de cdigo intermedio. El generador de cdigo intermedio
transforma la salida del anlisis semntico, en una representacin cercana a un lenguaje
intermedio cercano al cdigo objeto.
Esta representacin intermedia debe tener dos propiedades importantes; debe ser
fcil de producir y fcil de traducir al programa objeto.
Existen varias formas de representar el cdigo intermedio, mediante rboles
sintcticos, notacin postfija y cdigo de tres direcciones.

Pgina
3

GENERACIN DE CDIGO INTERMEDIO


El objetivo del cdigo intermedio es reducir el nmero de programas necesarios
para construir traductores, y permitir ms fcilmente la transpirabilidad de unas mquinas
a otras. Supngase que se tienen n lenguajes, y se desea construir traductores entre
ellos. Sera necesario construir n*(n-1) traductores.
Esta fase del compilador no es en realidad una parte separada del compilador, la
mayora de los compiladores generan cdigo como parte del proceso de anlisis
sintctico, esto es debido a que requieren del rbol de sintaxis y si este no va a ser
construido fsicamente, entonces deber acompaar al analizador sintctico al barrer el
rbol implcito.
La tarea de sntesis suele comenzar generando un cdigo intermedio. El cdigo
intermedio no es el lenguaje de programacin de ninguna mquina real, sino que
corresponde a una mquina abstracta, que se debe de definir lo ms general posible, de
forma que sea posible traducir este cdigo intermedio a cualquier mquina real. En lugar
de generar cdigo ensamblador directamente, los compiladores generan un cdigo
intermedio que es ms parecido al cdigo ensamblador, las operaciones por ejemplo
nunca se hacen con ms de dos operando.
Al no generarse cdigo ensamblador el cual es dependiente de la computadora
especfica, sino cdigo intermedio, se puede reutilizar la parte del compilador que genera
cdigo intermedio en otro compilador para una computadora con diferente procesador
cambiando solamente el generador de cdigo ensamblador al cual llamamos back-end, la
desventaja obviamente es la lentitud que esto conlleva.

RBOLES SINTCTICOS
La estructura sintctica de los lenguajes de programacin se especifica
mediante Gramticas Libres de Contexto (GLC).

Pgina
4

Analizar sintcticamente una cadena de tokens es encontrar


para ella un rbol sintctico, que tenga como raz 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.

DERIVACIONES POR LA IZQUIERDA / DERECHA


Las reglas de derivacin 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 derivacin izquierda y una nica derivacin derecha.
Sin embargo una sentencia de un lenguaje puede dar lugar a ms de un rbol de anlisis
sintctico tanto por la derecha como por la izquierda.

Pgina
5

NOTACIN POSTFIJA
Es una forma de notacin para la lgica, la aritmtica, y el lgebra. Su
caracterstica distintiva es que coloca los operadores a la izquierda de sus operan dos sus
caractersticas principales son:
Los operan dos conservan el mismo orden que la notacin infija equivalente.
No requiere de parntesis para indicar el orden de precedencia de operadores ya
que l es una operacin.
Se evala de izquierda a derecha hasta que encontrmosle primer operador
seguido inmediatamente de un par de operan dos.
Se evala la expresin binaria y el resultado se cambia como un nuevo operando.
Se repite este hasta que nos quede un solo resultado.
+A B C (A+B)*C

CDIGO DE TRES DIRECCIONES

Pgina
6

You might also like