Sei sulla pagina 1di 12

Instituto Tecnolgico de Ciudad Victoria Unidad Acadmica

A Distancia
Materia: Lenguajes y Autmatas ll
Asesor(a): Ing. Miguel ngel Macas
Nombre del Tutor: Ing. Fidel ngel Martnez Salazar
Alumno(s):
Jos Eduardo Dvila Tern 13380877
Julio Ivn Garca Toralla 13380896
Tema: 2-2 Representaciones de cdigo intermedio
Fecha de entrega: 04/09/2016

*Introduccin
*Una

representacin intermedia es una estructura


de datos que representa al programa fuente
durante el proceso de la traduccin a cdigo
objeto.
*El cdigo intermedio puede tomar muchas formas.
Todas ellas se consideran como una forma de
linearizacin del arbola sintctico, es decir, una
representacin del
rbol sintctico de forma
secuencial.

*Notacin Polaca
*Los

operadores siempre preceden a los operandos


sobre los que actan, y que tiene la ventaja de no
necesitar parntesis.
*Esta notacin tiene la ventaja de que las
operaciones aparecen en el orden en que se
efectan realmente la evaluacin.

*Notacin Polaca
Operadores

Prioridad

Log, Exp, Sqrt 6


- (unario)

*, /

+, -

*El

*La

idea bsica detrs


de la notacin de
cadenas polacas es que
los
operadores
se
escriben al final y no
en medio de las
expresiones

operador + se considera como una orden para


sumar los valores de las dos variables que lo
preceden inmediatamente.

*Cdigo P
*El

cdigo P comenz como un cdigo ensamblador


objeto estndar producido por varios compiladores
Pascal.
*Fue diseado para cdigo real para una mquina de
pila hipottica la idea era hacer que los
compiladores
de
Pascal
se
transportaran
fcilmente.

*Cdigo P
*Ha

probado ser til como cdigo intermedio y se


han utilizado varias extensiones y modificaciones
del mismo en diverso compiladores de cdigo
nativo
*La mquina P est compuesta por una memoria de
cdigo, una memoria de datos no especfica para
variables nombre das y una pila para datos
temporales, junto como cualquiera registro que
sea necesario para mantener la pila y apoyar la
ejecucin.

*Triplos

*Tiene como mximo tres operadores.


*<operador>, <operando1>, <operando2>
*El resultado se asocia al nmero de tripleta.
*No se permite ninguna expresin aritmtica
compuesta.

* t1 : = y * z
*t2 : = x * t1

Oper
*

op1
y

op2
z

Oper
*

op1
x

op2
t1

*Donde t1 y t2 son nombres temporales generados por


el compilador

*Triplos
*Generalmente

el cdigo que generan los triplos


recibe el nombre de cdigo de dos direcciones,
aunque en ocasiones puede variar.
*Una etiqueta simblica representa el ndice de una
proposicin de tres direcciones en la matriz que
contiene cdigo intermedio.
Cdigo en 3 dir

Posicin

Operador

Argumento1

Argumento2

t1 := -c

(0)

-unario

t2 := b*t1

(1)

t3 := -c

(2)

-unario

t4 := b*t3

(3)

(2)

t5 := t2+t4

(4)

(1)

(3)

a := t5

(5)

:=

(4)

(0)

*Cudruplos
*Estructura

con 4 campos: operador, operando1,


operando2, resultado.
*Las proposiciones con operadores unarios no usan
arg2.
*Las cudruplas facilitan la aplicacin de muchas
optimizaciones, pero hay que tener un algoritmo
para la reutilizacin de las variables temporales
(reutilizacin de registros del procesador).

*Cudruplos - Ejemplo
*a:=

b * -c + b * -c

Cdigo en 3 dir

Operador

Argumento1

Argumento2

Resultado

t1 := -c

-unario

t2 := b*t1

t3 := -c

-unario

t4 := b*t3

t3

t4

t5 := t2+t4

t2

t4

t5

a := t5

:=

t5

t1
t1

t2
t3

*Conclusin
*Se puede considerar esta representacin

intermedia como un programa para una mquina


abstracta. Esta representacin intermedia debe
tener dos propiedades importantes; debe ser fcil
de producir y fcil de traducir al programa objeto.
*La representacin intermedia puede tener diversas
formas, como son La Polaca, el cdigo P, Triplos y
Cudruplas. Los esquemas de generacin son las
estrategias o acciones que se debern realizarse y
tomarse en cuenta en el momento de generar
cdigo intermedio y es diferente en cada lenguaje.

*Referencia

bibliogrfica
* Rodrguez

Zamora, Francisco y Caldern Varela, Jonathan


(s.f), Generacin de Cdigo Intermedio, Universidad de
Costa Rica, Escuela de Ciencias de Computacin e
Informtica, San Jos, Costa Rica. Recuperado de:
http://www.di-mare.com/adolfo/cursos/2008-1/ppGenCodInterMed.pdf
* Unidad II: Anlisis Semntico (s.f), Instituto Tecnolgico de
Piedras Negras, Coahuila, Mxico. Recuperado de:
http://itpn.mx/recursosisc/7semestre/leguajesyautomatas
2/Unidad%20II.pdf
* Apuntes Unidad 2 (Agosto 2015), Instituto Tecnolgico de
Ciudad Victoria, Tamaulipas, Mxico. Recuperado de:
http://moodle.tecvictoria.edu.mx/mod/resource/view.php
?id=22367

Potrebbero piacerti anche