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.