Subrutina

En informàtica, una subrutina o subprograma (també cridada procediment, funció, rutina o método), com a idea general, es presenta com un subalgoritmo que forma part del algoritme principal, el qual permet resoldre una tasca específica. Alguns llenguages de programació, com Visual Basic .NET o Fortran, utilisen el nom funció per a referir-se a subrutina que tornen un valor.
Concepte de subrutina
[editar | editar còdic]Una subrutina és un segment de còdic que es desenrolla de forma separada al bloc principal d'un algoritme, dissenyat per a agrupar un conjunt d'instruccions específiques que realisen una tasca determinada.
El seu us és fonamental en el desenroll de software i algoritmes, ya que permet estructurar i modularizar el còdic per mig de la definició de paràmetros o arguments. En ser invocada o "cridada" pel seu nom des del bloc principal o una atra subrutina, l'eixecució del programa principal es deté temporalment per a transferir el control i eixecutar el còdic de la subrutina, utilisant les senyes assignades a les seues variables. Una volta finalisat este procés, la subrutina torna el valor resultant (comportant-se com una funció) i el fluix del programa repren/reprén el seu curs des del punt exacte a on va ser pausado. Esta tècnica optimisa el desenroll degut a que elimina la necessitat de repetir llínees de còdic idèntiques en diferents seccions de l'algoritme, facilitant el seu manteniment i reutilisació.
El concepte va ser establit per vàries figures importants de la computació sent el primer en 1945 el Dr. A. M. Turing. que creïa que les subrutina eren “Taules subsidiàries” per a resoldre problemes repetitius, va establir un concepte base que va cridar “Pila” que es descriu per mig de dos operacions anomenades BURY que generava una pausa en l'eixecució del còdic principal per a que es generarà un bot a la taula subsidiària que es guardava prèviament en la memòria i UNBURY que li donava fi a la llectura de la taula subsidiària i tornava a l'última direcció del còdic principal just en el moment del bot.[1]
Turing també va poder prevore que una subrutina podria cridar a una atra subrutina o lo que cridem “Cridades anidadas”, ell va detallar que si una taula subsidiària |A| flama a una taula |B|, la direcció de tornada de |B| es "enterra" damunt de la direcció de |A|. En terminar |B|, s'eixecuta un UNBURY que extrau la direcció de |B| (Retorna a |A|), i quan |A| termina, un atre UNBURY extrau la direcció de |A|, retornant finalment al còdic principal.[1]
Posteriorment, les sis programadores de el ENIAC (Electronic Numerical Integrator and Computer) Kathleen Antonelli (Kay McNulty), Jean Bartik, Frances Spence, Ruth Teitelbaum, Marlyn Meltzer (Marlyn Wescoff) i Betty Holberton. Estes persones no treballaven en llenguage de programació ni un sistema operatiu, ya que la ENIAC era una màquina electrònica digital programable per mig de cablejat, per lo que es varen vore obligades a descompondre equacions diferencials de les trayectòries balístiques en operacions aritmètiques individuals i lo més important que va ser la creació de subrutina físiques per a que el “Master Programmer” que era l'unitat d'hardware, quan era requerit realisarà bots als diferents panels que representaven les subrutina que necessitava, prendre eixa senya i tornar al centre llògic per a continuar en el càlcul general.[2]
Va concloure en David Wheeler, Maurice Wilkes i Stanley Gill en 1951. Wheeler és acreditat en l'invenció de la subrutina tancada, diferenciant-la de la subrutina oberta (que implicava copiar el còdic en cada us). La subrutina tancada permetia que el bloc de còdic residira en una única ubicació de memòria, sent invocat per mig d'un 'bot' i retornant al programa principal despuix de la seua eixecució. Esta innovació va ser vital en la computadora EDSAC per la seua llimitada memòria, i va assentar les bases per a la creació de les primeres biblioteques de software reutilisable.[3][4]
També varen desenrollar la primera biblioteca de software “The EDSAC Library” que contava en canvis importants que marque el concepte de les subrutina d'eixos anys, puix varen crear el sistema “Initial Orders” que s'encarregava d'ajustar les senyes d'entrada que rep la subrutina i finalment varen desenrollar el concepte de “Abstracció” a la programació, este concepte establix que solament és necessari conéixer les senyes d'entrada i d'eixida per a usar la subrutina de manera que no era necessari ser un expert en electrònica per a programar.[5][6]
Elements de la declaració d'una subrutina
[editar | editar còdic]Les declaracions de subrutina generalment són especificades per:
- Un nom únic en l'àmbit: nom de la funció en el que s'identifica i es distinguix d'unes atres. No podrà haver una atra funció ni procediment en eixe nom (llevat sobrecàrrega o polimorfisme en programació orientada a objectes).
- Un tipo de senya de tornada: tipo de senya del valor que la subrutina tornarà en terminar la seua eixecució.
- Una llista de paràmetros: especificació del conjunt d'arguments (poden ser zero, un o més) que la funció deu rebre per a realisar la seua tasca.
- El còdic o órdens de processament: conjunt d'órdens i sentències que deu eixecutar la subrutina.
Vore també
[editar | editar còdic]- Programació estructurada
- Programació modular
- Encapsulamiento (programació orientada objectes)
- Abstracció (programació orientada a objectes)
- Recursión
- Algoritme recursivo
- Funció definida per l'usuari
Referències
[editar | editar còdic]- ↑ 1,0 1,1 (2005) Alan Turing's automatic computing engine: the master codebreaker's struggle to build the modern computer, Oxford University Press. ISBN 978-0-19-856593-2.
- ↑ Haigh, Thomas; Priestley, Mark; Rope, {{{nom3}}} (2016). ENIAC in action: making and remaking the modern computer, The MIT Press. ISBN 978-0-262-03398-5.
- ↑ The Computer Museum Archive, Wheeler (1951). The Preparation of Programs for an Electronic Digital Computer.
- ↑ Wilkes, Maurice Vincent (1951). The Preparation of Programs for an Electronic Digital Computer: With Special Reference to the EDSAC and the Use of a Library of Subroutines (en en), Addison-Wesley Press.
- ↑ The American Mathematical Monthly.65(9)
- 719.doi:10.2307/2308734.Consultat el 2026-05-31.
- ↑ Isis.77(1)
- 157–157.ISSN 0021-1753.doi:10.1086/354083.Consultat el 2026-05-31.
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «Subrutina» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.