![]() |
Imagen en pixabay de Hant bajo licencia CC |
Los módulos o funciones podemos clasificarlos atendiendo a diferentes criterios.
En función de su situación con respecto al módulo que lo invoca:
- Interno: se encuentra en el mismo fichero que el módulo que lo invoca.
- Externo: se encuentra en distinto fichero.
Atendiendo al posible retorno de un valor:
- Función: retorna un valor cuando devuelve el control al módulo que lo invocó. Dicho valor será recogido para usarlo en una expresión.
- Procedimiento: no hace un retorno explícito de un valor al finalizar el módulo. Cuando se devuelve el control al módulo que hizo la llamada, la ejecución continúa en la sentencia siguiente a la que hizo la llamada.
En función de cuándo ha sido desarrollado:
- De programa: su desarrollo se ha realizado integramente en el programa actual.
- De librería: ha sido desarrollado previamente y está contenido en ficheros de librerías.
En función del número de módulos distintos que realizan la llamada:
- Subprograma: es invocado por un solo módulo.
- Rutina o subrutina: es invocado por diversos módulos.
En la práctica, una de las distinciones más claras en cuanto a módulos es la de funciones frente a procedimientos, el retornar o no un valor puede ser clave para continuar con el flujo natural y correcto de un programa.