
Semántica de subrutinas
Parámetros reales y formales:
El término argumento se usa para un objeto de datos (o un valor) que se envía a un subprograma u
operación primitiva como uno de sus operandos, es decir, como un dato para usarse en el procesamiento.
El término resultado se refiere a un dato (objeto de datos o valor) que es regresado desde una operación
al final de su ejecución. Así pues, los términos argumento y resultado se aplican a datos enviados al
subprograma y regresados por el mismo a través de diversos mecanismos de lenguaje
Un parámetro formal es una clase particular de objeto de datos local dentro de un subprograma. La
definición del subprograma enumera ordinariamente los nombres y declaraciones para parámetros
formales como parte de la sección de especificación (encabezamiento). Un nombre de parámetro formal
es un simple identificador, y la declaración proporciona el tipo y otros atributos.
Un parámetro real es un objeto de datos que se comparte con el subprograma de llamada. Un parámetro
real puede ser un objeto de datos local perteneciente al que llama, puede ser un parámetro formal del
que llama, puede ser un objeto de datos no local visible para el que llama, o puede ser un resultado
regresado por una función invocada por el que llama y transmitido de inmediato al subprograma llamado.
Un parámetro real se representa en el punto de llamada del subprograma por medio de una expresión,
llamada expresión de parámetro real, que ordinariamente tiene la misma forma que cualquier otra
expresión en el lenguaje.
Valores de función explícitos:
En casi todos los lenguajes, un solo resultado se puede regresar como valor de función explícito antes que
como parámetro. El subprograma se debe declarar como un subprograma de función, y el tipo de
resultado regresado se debe declarar como parte de la especificación del subprograma. Dentro del
subprograma de función, el resultado por regresar como valor de la función se puede especificar en una
de dos formas.
Un método, que se usa en C, consiste en designar el valor de función por devolver por medio de una
expresión de resultado explícita dada como parte del enunciado return que termina la ejecución del
subprograma. Un método alternativo, que se usa en Pascal, consiste en designar el valor por devolver por
medio de una asignación del valor al nombre de la función dentro del subprograma. En este último
método, el subprograma puede contener varias asignaciones al nombre de la función. El valor de función
regresado es el último valor asignado al nombre de la función antes de que el subprograma termine
De acuerdo a como un lenguaje trata a sus subrutinas puede implementar:
1. subrutina de primera clase (orden superior): las subrutinas pueden ser pasadas como argumentos,
retornadas como valor de retorno de otra subrutina o pueden ser asignadas a una variable.
2. subrutina de segunda clase (segundo orden): subrutinas que solo admiten ser pasadas como
argumentos a otra subrutina. Ej: JavaScript
3. subrutina de tercera clase (tercer orden): no se permite tratar a las subrutinas como datos, por lo
que no pueden ser pasadas ni retornadas. Ej: C, C++