Está en la página 1de 2

2.

2 Representacin de cdigo intermedio


Existen maneras formales para representar cdigo intermedio.
Estas notaciones simplifican la traduccin de nuestro cdigo fuente a nuestro cdigo objeto ya que ahorran y acotan
smbolos de la tabla de smbolos

2.2.1 Notacin Polaca
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 operandos sus caractersticas principales son:
-Los operandos conservan el mismo orden que la notacin infija equivalente.
-No requiere de parntesis para indicar el orden de precedencia de operadores ya que el es una operacin.
-Se evala de izquierda a derecha hasta que encontrmosle primer operador seguido inmediatamente de un par de
operandos.
-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
2.2.2 Cdigo P
El cdigo P hace referencia a mquinas que utilizan o se auxilian de pilas para generar
cdigo objeto.
En muchos caso la P se asociado a cdigo portable el cual garantiza que el cdigo compilado en una mquina se pueda
ejecutar en otras.
Para garantizar la portabilidad del cdigo se necesita que el lenguaje este estandarizado por algn instituto y que dicho
cdigo no tenga extensiones particulares.
Tambin se recomienda la no utilizacin de carctersticas especiales exclusivas de alguna arquitectura de
computadoras en particular.

2.2.3 Triplos
Las proposiciones de tres direcciones se parece mucho al ensamblador, el cual es un lenguaje intermedio ms
entendible para la mquina.
Las estructuras de control (if, switch, while, do-while, for) son realmente etiquetas goto disfrazadas.
El problema de utilizar cudruplos radica en que se tienen que colocar los valores
temporales en la tabla de smbolo.
Con una estructura de tres campos se pueden omitir los valores temporales, dicha estructura recibe el nombre de
triples y tiene los siguientes campos: op, arg1 y arg2
Generalmente el cdigo que generan los triples recibe el nombre de cdigo de dos direcciones, unque en ocasiones
puede variar.
Cuando se utilizan triples se ocupan punteros a la misma estructura de los triples.
* b t1 t2 //cudruplos
* b (0) //triple
Se debe tener en cuenta el proceso de asignacin, de declaracin, expresiones booleanas.
Las expresiones lgicas tambin pueden pasarse a cdigo de tres direcciones, utilizando para ello expresiones en corto
circuito.
La evaluacin de expresiones en corto circuito implica que se evalan condiciones revisando valores anteriores; por
ejemplo, para el operador AND con una condicin que se detecte como alsa toda la expresin es falsa, en el caso del
operador OR si se encuentra una condicin verdadera todo ser verdadera.
La notacin de tres direcciones es una forma abstracta de cdigo intermedio.
Esta notacin se puede implementar como registros con campos para el operador y operadores.

2.2.4 Cudruplos
Es una estructura tipo registro con cuatros campos que se llaman: op, arg1, arg2 y resultado. OP tiene un cdigo
intermedio.
Los operadores unarios como x:=-y no utilizan arg2. Generalmente arg1, arg2 y resultado son valores de tipo puntero
y apuntan a una entrada en la tabla de smbolos.