Académique Documents
Professionnel Documents
Culture Documents
TEMAS
2.1 Notaciones 2.1.1 Prefija 2.1.2 Infija 2.2.3 Postfija 2.2 Representaciones de cdigo Intermedio. 2.2.1 Notacin Polaca 2.2.2 Cdigo P 2.2.3 Triplos 2.2.4 Cudruplos.
2.3 Esquema de generacin. 2.3.1 Variables y constantes. 2.3.2 Expresiones. 2.3.3 Instruccin de asignacin. 2.3.4 Instrucciones de control. 2.3.5 Funciones 2.3.6 Estructuras
Lenguajes intermedios
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.
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
2.1 Notaciones
Forma especial en la que se pueden expresar una expresin matemtica en tres formas: Prefija: el operador binario es analizado antes que sus operandos. Infija: el operador binario es analizado entre sus operandos. Sufija: el operador binario es analizado despus que sus operandos.
2.1.1 Prefija
Nos indica que el operador va antes de los 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 encontremos el primer operador seguido inmediatamente de un par de operandos. Se evala la expresin binaria y el resultado se cambia como un nuevo operando. a+b-5 +ab-5
2.1.2 Infija
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: 3*4=12 3*4+2=14 3*(4+2)=18
2.2.3 Postfija
Llamada tambin polaca inversa, se usa para representar expresiones sin necesidad de parntesis. La notacin postfija pone el operador al final de los dos operandos. Ejemplos: a*b a*(b+c/d) a*b+c*d ab* abcd/+* ab*cd*+
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 Notacin prefija Notacin infija Notacin postfija =+2*34x 2+3*4 = x 234*+x= ((2+3)*4) = x =*+234x (2+3)*4 = x 23+4*x=
Ejercicios
Realizar los siguientes ejercicios a notacin infija, posfija, prefija. 1) (A+B)*C 2) 4+5/3 3) (2+4+3)*3/2 4) X- Y+Z*C 5) (X+5-2)/Y 6) 3*(X+Y)-4 7) (2+5)*8+7 8) 5*4+6/2
Infijo a postfijo
Expr -> Expr + Trmino Expr -> Expr - Trmino Expr -> Trmino Trmino -> 0 Trmino -> 1 Trmino -> 2
.... Expr.t := Expr.t & Trmino.t & + Expr.t := Expr.t & Trmino.t & - Expr.t := Trmino.t Trmino.t := 0 Trmino.t := 1 Trmino.t := 2 .... Trmino.t := 9
Trmino -> 9
Infijo a postfijo
Expr -> Expr1 + Trmino Expr -> Expr1 - Trmino Expr -> Trmino Trmino -> 0 Trmino -> 1 Trmino -> 2
.... Expr.t := + Expr.t := - Expr.t := Trmino.t Trmino.t Trmino.t .... Trmino.t Expr1.t & Trmino.t & Expr1.t & Trmino.t & Trmino.t := 0 := 1 := 2 := 9
Trmino -> 9
Expr
Trmino
Expr
Trmino
Trmino
Transformacin
Expr.t = Expr.t & Trmino.t & - Expr Expr.t = 2 5 + 4 - Expr.t = Expr.t & Trmino.t & + Expr.t = 2 5 + Expr
Trmino
Trmino.t = 4
Expr
Expr.t = 2
Trmino
Trmino.t = 5
Trmino
Trmino.t = 2
Trmino.t , := 0 := 1 := 2
:= 9
Trmino
Trmino.t = 4
Expr
Trmino
Trmino.t = 5
Trmino
Trmino.t = 2
Trmino
Trmino.t = 7
2.2 Representaciones de cdigo Intermedio. 2.2.1 Notacin Polaca 2.2.2 Cdigo P 2.2.3 Triplos 2.2.4 Cudruplos.