You are on page 1of 4

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE SALTILLO

SUBDIRECCIÓN ACADÉMICA
DEPARTAMENTO DE EDUCACIÓN A DISTANCIA
INGENIERÍA EN SISTEMAS COMPUTACIONALES

LENGUAJES Y AUTÓMATAS II

TEMA 2 GENERACIÓN DE CÓDIGO INTERMEDIO

Actividad 2.4 Unidad 2

Catedrático.
Omar Rodríguez Veloz

Presenta:
Abril Mejia Rangel
19052155
8 SEMESTRE

Saltillo, Coahuila; a 24 de Febrero de 2023.


INTRODUCCIÓN
En este documento se realizará una investigación como representar las expresiones en
cuádruplos o triples como código intermedio del proceso de compilación de asignación,
sentencia if-then, if-then-else, while y una función.

DESARROLLO
Asignación
Una asignación consiste en asignar el resultado de la evaluación de una expresión a una
variable. Por ejemplo:
X = a + b/6

Quedaría en la siguiente forma en representación de triples:


t1:= b/6
t2:= a + t1
t3:= t2
X:= t3

Sentencia if-then
If condición define la condición que determina qué valor se asigna. Then expresión define
el valor que se asigna si la condición es true.
A continuación, se mostrará otro ejemplo con if-then. Para if (x<y) then x: = 3 será:
(<,x,y,T1)
(if,(1)(4),T2)
(:=,3,x, )
(Label, , , T3)

t1: x>y
t2: iff t1 goto t1
x: =3
label t2:

Sentencia if-then-else
Se puede usar en los cálculos de distintas maneras para filtrar, agrupar y volver a rotular
los resultados. La función IF THEN ELSE prueba una condición, luego devuelve un valor
basado en el resultado de esa condición.

A continuación, se mostrará otro ejemplo con if-then-else. Para if (x>y) then a = 3


else a =2 será:

If x>y goto etq1


goto etq2
label etq1:
a: = 3
Goto Etiq3
label etiq2:
a: = 2
label etiq3:
Otro código
Sentencia while
Se utiliza cuando no se conoce previamente cuantas veces ha de repetirse un
bloque de código, por lo que puede ejecutarse 0 o más veces. Este bloque se
repetirá mientras la condición evalúe una expresión booleana verdadera, no será
posible evaluar otro tipo de expresión. A continuación, se mostrará otro ejemplo
con while. Para while será:

While(a>b) and (a<=2*b-5) do a:=a+b

En código intermedio queda:


L1: if a>b goto L2
goto L3
L2: T1:=2*b
T2:=T1-5
If a<=T2
Goto L3
L4: a:=a+b
Goto L1
L3:…

Función
Una función es un grupo de instrucciones con un objetivo en particular y que se ejecuta
al ser llamada desde otra función o procedimiento. Una función puede llamarse múltiples
veces e incluso llamarse a sí misma.
Ejemplo:

int suma (int num1, int num2)


{
Return num1 + num2;
}

En código intermedio queda:

T1: Etiqueta int suma

T2: num1 + num2

T3: return T2
Referencias:
https://hopelchen.tecnm.mx/principal/sylabus/fpdb/recursos/r97340.pdf
https://www.cartagena99.com/recursos/alumnos/apuntes/ININF2_M4_U6_T3.pdf
http://informatica.uv.es/docencia/iiguia/asignatu/2000/pl/2008/tema7.pdf
http://www.lcc.uma.es/~galvez/ftp/tci/tictema7.pdf
https://www.youtube.com/watch?v=-8cbjwy0pe4

Aguilera Sierra, M. del M. & Gálvez Rojas, S. (2005). Compiladores Traductores y


Compiladores con Lex/Yacc, JFlex/cup y JavaCC. (1ra e.d., pp. 221, 223, 253-255).
Universidad de Málaga.
http://avellano.fis.usal.es/~lalonso/procesadores/compiladores.pdf

Rob Stack. (2022). Uso de la función IF THEN ELSE. Zendesk.


https://support.zendesk.com/hc/es/articles/4408838560922-uso-de-la-funci%c3%b3n-if-
then-else

You might also like