Conjunto de sentencias consecutivas que pueden ser usadas por uno o más programas y en uno o más puntos de un programa.
Una rutina que puede ser parte de otra rutina.
Subprograma que es invocado por una sentencia de llamada, que puede o no recibir valores de entrada y que devuelve valores de salida a traves de parámetros, variables u otros mecanismos.