subrutina

subrutina

s. f. INFORMÁTICA Parte de un programa que ejecuta algunas de sus órdenes. subprograma

subrutina

 
f. inform. V. rutina.
subrutina dinámica La que se adapta a las distintas necesidades de cada procesamiento de datos.
subrutina recursiva La que puede llamarse a sí misma sin perder el control de las condiciones de entrada o de las que se han obtenido antes de cada llamada.
Traducciones

subrutina

SFsubroutine
Ejemplos ?
foo $x, @y, %z; Los parámetros de una subrutina no necesitan ser declarados, ni en número ni en tipo; de hecho, pueden variar en cada llamada.
Cualesquiera de los argumentos pasados están disponibles para la subrutina en el array especial @_. Los elementos de @_ son asociados a los argumentos actuales; cambiando un elemento de @_ cambia el argumento correspondiente.
En lenguaje Python: def Termina(p, x): Supongamos que aquí se encuentra un código maravilloso que soluciona el problema de la parada Esta función regresa True si p(x) termina o False en otro caso Bajo la suposición de que existe este programa, se puede usar como subrutina de otro programa más grande, al que llamaremos " Diagonal " (en referencia a la diagonal de Cantor).
Esto se usa en situaciones donde una nueva subrutina puede realizar una gestión de la pila más eficiente que el propio Perl (porque típicamente no se requiere ningún cambio en la pila actual), y en una recursión muy profunda este tipo de llamadas puede tener un sustancial impacto positivo en el funcionamiento porque evita la sobrecarga de la gestión contexto/pila en el momento de retornar.
Los arrays son expandidos a sus elementos, los hashes a una lista de pares clave/valor y todo el conjunto es pasado a la subrutina como una indiferenciada lista de escalares.
Un programa que se limita asimismo a 32 registros por procedimiento puede hacer llamadas a procedimientos muy rápidas: la llamada, y el regreso, simplemente mueven la ventana de 32 registros actual para limpiar suficiente espacio de trabajo para la subrutina, y el regreso restablece esos valores.
Confianza ciega (blind faith): Descuidar la comprobación de los resultados que produce una subrutina, o bien de la efectividad de un parche o solución a un problema.
Por el contrario, $ra es modificado automáticamente tras una llamada a una función normal (cualquiera que utilice la instrucción jal), y los registros $t deben ser salvados por el programa antes de llamar a cualquier función (por si el programa necesita los valores contenidos en dichos registros tras la ejecución de la subrutina).
Cuando en la subrutina de atención a interrupción se ejecuta la instrucción de retorno, se desencadena el proceso de restauración del procesador al estado en que estaba antes de la atención a la interrupción.
Sin embargo, hay varios indicadores que sugieren la necesidad de un examen cuidadoso para determinar si es inseguro: acceder a las variables globales o al heap asignar/liberar recursos que tienen límites globales (ficheros, procesos y subprocesos, etc.) accesos indirectos a través de handle o punteros cualquier efecto co-lateral visible (por ejemplo, acceso a variables volátiles en el lenguaje de programación C) Una subrutina tiene seguridad en hilos, y por tanto es reentrante, si sólo usa variables de la pila, depende sólo de los argumentos que le pasen, y sólo llama a otras subrutinas con propiedades similares.
Una diferencia sustancial se establece con las instrucciones GOSUB (saltar a subrutina), la diferencia esencial es que gosub, tras saltar a la instrucción indicada, ejecuta un número determinado de instrucciones hasta que encuentra una instrucción RETURN, que le obliga volver a la siguiente instrucción que viene a continuación de la instrucción GOSUB.
Las interrupciones son esencialmente llamadas a subrutina generadas por los dispositivos físicos, al contrario de las subrutinas normales de un programa en ejecución.