Está en la página 1de 16

2.

3 Esquemas de
generación
2.3.5 Funciones
Lenguajes y Autómatas II
10:00 - 11:00
2.3.5 Funciones
 Lafunción podría ser definida como un conjunto
de instrucciones que permiten procesar las
variables para obtener un resultado

 Esun bloque de instrucciones que realiza tareas


bien definidas
Partes de una función:
 1. Prototipo de la función
 Tipo de valor
 Identificador
 Parámetro
 2. Definición de la función
 La definición de la función se hace después de cerrar la llave de main
 a) Encabezado de la función.
 b) Cuerpo de la función
 3. Llamada a la función
Representación de una función
 Código de tres direcciones

Declaración Llamada
entry “Nombre de la función” begin_args
<Bloque de código> <Bloque de código>
return call (nombre de la función)
Código de tres direcciones para la
representación de funciones
Ejemplo 1:
 Declaración:
int funcion(a,b){

return 5*a+b-1;

}
 Llamada:
 funcion(4,2)
Ejemplo 2:
 Declaración:
int f(x,y){

return (x+y)*4;

}
 Llamada:
 f(5,6)
Ejemplo 3:
 Declaración:
int pago(int horas){

return 80 + (horas*60) - 20;

}
 Llamada:
 pago(3)
Código P: 2*a+(b-3)
 ldc 2 ;carga la constante 2
 lod a; carga el valor de la variable a
 mpi; multiplicación entera
 lod b ;carga el valor de la variable b
 ldc 3;carga la constante 3
 sbi ; sustracción o resta entera
 adi ;adición de enteros
ldc 2

2
a

lod 2
ldc a
2
mpi
2*a
2*a
3

b lod b
ldc3

2*a
b-3 Sbi

2*a
adi

2*a+(b-
3)
Representación de una función
 Código P
Declaración Llamada
ent “Nombre de la función” mst
<Bloque de código> <Bloque de código>
ret cup
Código P para la representación de
funciones

También podría gustarte