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 utilizar 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. A veces se utiliza el término genérico denominativo unidad invocable . [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 bifurcarse ( regresar ) a la siguiente instrucción después de la llamada , una vez que la tarea de la subrutina está terminada. . La idea de una subrutina fue inicialmente concebida por John Mauchly durante su trabajo en ENIAC , [2] y registrada en un simposio de Harvard en enero de 1947 sobre "Preparación de problemas para máquinas tipo EDVAC". [3] Maurice Wilkes ,A David Wheeler y Stanley Gill generalmente se les atribuye la invención formal de este concepto, al que denominaron una subrutina cerrada , [4] [5] en contraste con una subrutina abierta o macro . [6] Sin embargo, Turing había discutido las subrutinas en un documento de 1945 sobre propuestas de diseño para el NPL ACE , yendo tan lejos como para inventar el concepto de una pila de direcciones 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 escribirlos y usarlos. El uso juicioso de 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, al tiempo que 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 llamado 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 parte del código del programa que se ejecuta cuando se llama o invoca la subrutina.