Está en la página 1de 19

El cdigo intermedio en una estructura de cdigo cuya complejidad est entre un cdigo fuente en un lenguaje de alto nivel y el cdigo

mquina.
Cdigo fuente Cdigo intermedio Cdigo Objeto

Un compilador produce primero un cdigo intermedio, pues producir directamente el cdigo objeto resulta sumamente complicado e ineficiente.

Los lenguajes intermedios nos sirven para representar la produccin final de nuestro lenguaje fuente.

Existen muchos lenguajes intermedios, la mayora de ellos son una representacin ms simplificada del cdigo original para facilitar la traduccin hacia el cdigo final.

Otros lenguajes intermedios sirven de base o como representacin parcial de otros procesos. Por ejemplo al compilar un programa en C en Windows o DOS, se produce un cdigo objeto con extensin.obj para que posteriormente el enlazador cree finalmente el cdigo executable .exe

En sistemas basados en Unix, tambin ocurre algo similar generndose un archivo .o y el executable a.out Otros lenguajes intermedios famosos son los generados para la mquina virtual de Java el bytecode; y para la mquina virtual de .NET el MISL para luego ejecutarse en tiempo de ejecucin JIT (Just in Time)

Otros lenguajes intermedios se utilizan en sistemas distribuidos como RPC, CORBA y su IDL, etc. En este caso estos lenguajes intermedios se encargan de enmascarar toda la heterogeneidad de las comunicaciones distribuidas en una computadora

Ventajas de producir cdigo intermedio: Ms fcil de producir cdigo objeto despus, si se parte de un cdigo intermedio. Facilita y hace eficiente la optimizacin de cdigo (algunos tipos de optimizacin). El cdigo intermedio es transportable (puede usarse en diferentes arquitecturas) ya que no hace referencia a componentes de la mquina.

Las notaciones son una forma especial en la que se pueden expresar una expresin matemtica y puedan ser de 3 formas: Infija, Prefija y Posfija.

Manera formal para representar cdigo intermedio.


Simplifican la traduccin de nuestro cdigo fuente a nuestro cdigo objeto ya que ahorran y acotan smbolos de la tabla de smbolos

Las notaciones sirven de base para

expresar sentencias bien definidas.

Las expresiones aritmticas se pueden expresar de tres formas distintas: infija, prefija y postfija.

Es la forma mas comn que utilizamos para escribir expresiones matemticas, estas notaciones se refiere a que el operador esta entre los operandos.

La notacin infija puede estar completamente parentizada o puede basarse en un esquema de precedencia de operadores as como el uso de parntesis para invalidar los arreglos al expresar el orden de evaluacin de una expresin:

Es primero el primer operando Luego el Operador Y el Segundo Operando

3*(4+2)=18

Como su nombre lo indica se refiere a que el operador ocupa la posicin despus de los operandos sus caractersticas principales son: El orden de los operandos se conserva igual que la expresin infija equivalente no utiliza parntesis ya que no es una operacin ambigua. La operacin posfija no es exactamente lo inverso a la operacin prefija equivalente: (A+B)*C AB+C*

EJEMPLO:
El orden es primer operando Despues segundo operando Y por ultimo operador.

X+yx*y
Xy + xy * -

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. Si la aridad(nmero de argumentos necesarios para que dicho operador o funcin se pueda calcular) de los operadores es fija, el resultado es una sintaxis que carece de parntesis u otros signos de agrupacin, y todava puede ser analizada sin ambigedad.

EJEMPLO: Primero es el Operador Despues el Primer Operando Y finalmente el Segundo Operando

X+yx*y - + xy * xy

EJEMPLO: Si deseamos representar las expresiones (2+(3*4)) = x y ((2+3)*4)= x en las tres notaciones mencionadas, el resultado sera:
(2+(3*4)) = x ((2+3)*4) = x

Notacin prefija

=+2*34x

=*+234x

Notacin infija

2+3*4 = x

(2+3)*4 = x

Notacin postfija

234*+x=

23+4*x=

Realizar cada una de las notaciones para las siguientes expresiones

3*4=x

3*(4+2)=x

((5-3)/2)=x

(1+4)-(5-3)=y 7-(4/2)=y

Infija Posfija
Prefija

3*4=x 34*x=
=*34x

3*4+2=x 342+*x=
=*3+42 x

(5-3)/2=x 53-2/x=
= / - 532 x

(1+4)-(5-3)=y 14+ 53- - y=


= - +14-53xy

7-4/2=y 742-/x=
= -7 /42 y

Cardona Hinojos Maria Isabel Cordova Sanchez Martin Moreno Talamantes Kimmy Alina Vega Villalobos Andrea Zapien Rodriguez Lorena

También podría gustarte