Compiladores
Compiladores
Compiladores
Guía 8 1
Facultad: Ingeniería
Escuela: Computación
Asignatura: Compiladores
Contenido
En esta guía se abordarán los conceptos pertenecientes
al componente de análisis de código intermedio, se
analizaran los bloques de básicos de código a partir de
un código en cualquier lenguaje previamente indicado.
Además se analizara el uso de la notación polaca inversa
y el uso de direcciones en ellas.
Objetivos Específicos
Material y Equipo
Guía de Laboratorio Nº 8.
Computadora con programa “Dev C++”.
Introducción Teórica
(100) t1:=-c
(101) t2:=b*t1
(102) t3:=-c
(103) t4:=b*t3
(104) t5:=t2*t4
(105) a :=t5
(106) if(a>0) goto (712)
(101) t1 := j
(102) t2 := n
(103) t3 := t1 < t2
(104) if(t3) goto (105)
(105) t4 := k
(106) t5 := j
(107) t6 := t5 * 2
(108) t7 := t4 + t6
(109) k := t7
(110) t8 := j
(111) t9 := t8 * 2
(112) m := t9
(113) t10 := j
(114) t11 := t10 + 1
(115) j := t11
(116) goto (101)
Tripletes
No se pone el resultado, se sustituye por referencias a
tripletes. Por ejemplo: la expresión a * b + c * d equivale
a:
Compiladores. Guía 8 5
(1) (*,a,b)
(2) (*,c,d)
(3) (+,(1),(2))
Mientras que a * b + 1 equivale a:
(1) (*,a,b)
(2) (*,(1),1)
Procedimiento
(1) prod := 0
(2) i := 1
(3) t1 := 4 * i
(4) t2 := a [ t1 ] //calcula a[i]
6 Compiladores. Guía 8
(5) t3 := 4 * i
(6) t4 := b [ t3 ] //calcula b[i]
(7) t5 := t2 * t4
(8) t6 := prod + t5
(9) prod := t6
(10) t7 := i + 1
(11) i := t7
(12) if i <= 20 goto (3)
int i=0;
int a[10];
while(i<=10)
a[i]=0;
Fuente:
w*x+(y+z)
Operaciones:
1. ___________________________________________________
2. ___________________________________________________
3. ___________________________________________________
Fuente:
A = B + C * D / E
F = C * D
Operaciones:
1. ___________________________________________________
2. ___________________________________________________
3. ___________________________________________________
4. ___________________________________________________
5. ___________________________________________________
Compiladores. Guía 8 7
Análisis de resultados
Escriba las proposiciones de tres direcciones y dibuje el
diagrama de bloques básicos para la generación de código
intermedio para el siguiente pseudocódigo del algoritmo de
burbuja:
Investigación complementaria
Investigue:
Que es un árbol en CoSeL y para qué sirve.
Que es, a partir de que se realiza y cual es el
resultado que se obtiene de la etapa de “Generación de
código” de un compilador.
Como se realiza la generación de código utilizando las
bibliotecas desarrolladas con lenguajes de alto nivel.
Bibliografía
Alumno:
GL:
GL:
Máquina No:
Docente: Fecha:
a
Docente: GL:
EVALUACION
ACTITUD
Del 15% No tiene Actitud Tiene actitud
al 30% actitud propositiva y proactiva y sus
proactiva con propuestas son
. propuestas no concretas.
aplicables al
contenido de
la guía.
TOTAL 100%