subrutina


En programación de computadoras , una subrutina es una secuencia de instrucciones de programa que realiza una tarea específica, empaquetada como una unidad. Esta unidad se puede usar en programas donde sea que se deba realizar esa tarea en particular.

Las subrutinas se pueden definir dentro de los programas, o por separado en bibliotecas que pueden ser utilizadas por muchos programas. En diferentes lenguajes de programación, una subrutina puede denominarse rutina , subprograma , función , método o procedimiento . Técnicamente, todos estos términos tienen definiciones diferentes y la nomenclatura varía de un idioma a otro. A veces se utiliza el término general genérico unidad exigible . [1]

El nombre subprograma sugiere que una subrutina se comporta de la misma manera que un programa de computadora que se usa como un paso en un programa más grande u otro subprograma. Una subrutina a menudo se codifica para que pueda iniciarse varias veces y desde varios lugares durante una ejecución del programa, incluso desde otras subrutinas, y luego retroceder ( regresar ) a la siguiente instrucción después de la llamada , una vez que se realiza la tarea de la subrutina. . La idea de una subrutina fue inicialmente concebida por John Mauchly durante su trabajo en ENIAC , [2] y registrada en enero de 1947 en un simposio de Harvard sobre "Preparación de problemas para máquinas tipo EDVAC". [3] Mauricio Wilkes ,A David Wheeler y Stanley Gill generalmente se les atribuye la invención formal de este concepto, al que denominaron subrutina cerrada , [4] [5] en contraste con una subrutina abierta o macro . [6] Sin embargo, Turing había discutido las subrutinas en un artículo de 1945 sobre propuestas de diseño para el NPL ACE , llegando incluso a inventar el concepto de una pila de dirección de retorno. [7]

Las subrutinas son una poderosa herramienta de programación , [8] y la sintaxis de muchos lenguajes de programación incluye soporte para escribirlas y usarlas. El uso juicioso de las subrutinas (por ejemplo, a través del enfoque de programación estructurada ) a menudo reducirá sustancialmente el costo de desarrollar y mantener un programa grande, mientras aumenta su calidad y confiabilidad. [9] Las subrutinas, a menudo recopiladas en bibliotecas , son un mecanismo importante para compartir e intercambiar software. La disciplina de la programación orientada a objetos se basa en objetos y métodos .(que son subrutinas adjuntas a estos objetos o clases de objetos ).

En el método de compilación denominado código enhebrado , el programa ejecutable es básicamente una secuencia de llamadas a subrutinas.

El contenido de una subrutina es su cuerpo, que es la pieza de código de programa que se ejecuta cuando se llama o invoca la subrutina.