Lenguajes y autómatas II
Generacion de codigo intermedio:
instrucciones de control
- ACEVEDO MALDONADO JOSUÉ.
- MORALES MARTINEZ MARÍA.
- OLIVERA ROSAS LUIS MIGUEL.
- PÉREZ CARRERA CARLOS FRANCISCO.
- RUIZ GONZALEZ ALEXANDER


Las condiciones deben expresarse de manera lo más
sencilla posible de tal forma que puedan evaluarse
en cortocircuito.

Denota la semántica de algunos operadores booleanos en
algunos lenguajes de programación.
Si el primer argumento de la función AND evalúa y el
resultado es falso, el valor total debe ser falso.
Si el primer argumento de la función OR evalúa y el
resultado es verdadero, el valor total tiene que ser verdadero.
x and y
if x then y else false
x or y
if x then true else y

int numerador = 5, denominador = 0;
if (denominador && numerador/denominador) {
………..
}
if (true || false ) {
………..
}

if (a > b) {
c = a + b;
}else {
c = a * b;
}

IF
forma a<b se traduce en:
if a < b goto B.true
goto B.false

IF
if ( x < 100 || x > 200 && x != y ) x = 0;
se escribe como:
if x<100 goto L2
goto L3
L3: if x>200 goto L4
goto L1
L4: if x!=y goto L2
goto L1
L2: x=0
L1:
IF
Evitar gotos redundantes
la comparación x> 200 se traduce en el siguiente fragmento de código:
if x>200 goto L4
goto L1
L4 ...
se puede expresar como:
ifFalse x>200 goto L1
L4 ...
IF
Aplicando la técnica al código anterior:
se puede expresar como:
if x<100 goto L2
ifFalse x>200 goto L1
ifFalse x!=y goto L1
L2: x=0
L1:
if x<100 goto L2
goto L3
L3: if x>200 goto L4
goto L1
L4: if x!=y goto L2
goto L1
L2: x=0
L1:
IF-ELSE
se puede expresar como:

if a < b goto B.true
goto B.false
WHILE
se puede expresar como:

inicio: if a < b goto B.true
goto B.false
B.true: instruccion
goto inicio
Copy of lenguajes y autómatas II
By neomatrix
Copy of lenguajes y autómatas II
- 531