You are on page 1of 3

Expresiones aritmticas

Para generar expresiones estas deben representarse de manera ms simple y


ms literal para que su conversin sea ms rpida.

Por ejemplo la traduccin de operaciones aritmticas debe especificarse una


por una, de tal forma que una expresin sea lo ms mnimo posible.

Expresiones

En esta funcin recibe una cadena que representa una lnea de cdigo
intermedio y toma las medidas oportunas para que ese cdigo se utilice.

Estas medidas pueden ser escribir la lnea en un fichero adecuado, almacenar


la instruccin en una lista que despus se pasar a otros mdulos, o cualquier
otra que necesitemos en nuestro compilador.

Expresiones aritmticas

Son aquella donde los operadores que intervienen en ella son numricos, el
resultado es un nmero y los operadores son aritmticos. Los operadores
aritmticos ms comnmente utilizados son: +, - , * , / y %.

Comenzamos el estudio por las expresiones aritmticas. Lo que tendremos que


hacer es crear por cada tipo de nodo un mtodo que genere el cdigo para
calcular la expresin y lo emita. Ese cdigo dejar el resultado en un registro,
cuyo nombre devolver el mtodo como resultado.

Para reservar estos registros temporales, utilizaremos una funcin, reserva. En


principio bastar a con que esta funcin devuelva un registro distinto cada vez
que se la llame.

Cada nodo generar el cdigo de la siguiente manera:

Por cada uno de sus operandos, llamara al mtodo correspondiente para que
se evale la sub expresin. Si es necesario, reservara un registro para guardar
su resultado.

Emitir las instrucciones necesarias para realizar el clculo a partir de los


operandos.

ESTATUS

Estatuto de asignacin.
Las operaciones de asignacin deben quedar expresadas por una expresin
sencilla, si est es compleja se debe reducir hasta quedar un operador sencillo.

Ejemplo:

x = a+b/5; debe quedar de la

forma y = b/5; z = a+y; x=z

Estatuto Condicional.

Las condiciones deben expresarse de manera lo ms sencilla posible de tal


forma que puedan evaluarse en cortocircuito. Por ejemplo una instruccin
como:

if (a == b && f!=5 && f%3==0)

se evala primero x = (a==b && f!=5) y = x && f%3==0; if (y)

Las instrucciones de decisin compleja como switch se reducen a una versin


complejas de ifs

Son por as decirlo las normas que regulan nuestras expresiones regulares,
(if,then, else) donde una expresin condicional nos permite elegir que pautas
deben ser encontradas, en base a una condicin.

Nuestros programas pueden tomar decisiones sirvindose de las expresiones


condicionales.

Una expresin condicional responde a los valores de True o False y de acuerdo


al resultado podemos decidir si ejecutar o no un pedazo de cdigo o
simplemente no hacer nada.

if (expresion condicional) {
bloque de cdigo
}

if (expresion condicional) {
bloque de cdigo ; }
else {
bloque de cdigo ;
}
Ejecutara instrucciones dependiendo del valor de una condicin que resulta en
un dato tipo boolean.

Ejemplo:

If Expresin lgica Then

Instrucciones Afirmativo

Else

Instrucciones negativo

End If

Hay otra forma, abreviada, de escribir una sentencia if, aunque es importante
observar que esta expresin no slo compara valores, sino que tambin asigna
un valor a una variable. su sintaxis es:

Variable = (condicin) ? valor1 : valor2

Esta expresin emplea el operador ? para asignar valores a una variable. Si la


condicin resulta verdadera entonces asigna valor1, de lo contrario asignar
valor2.

var sCondicin = (user = "Juan") ? "Jefe" : "Empleado" ;

Optimizacin de cdigo

You might also like