functies
In computerprogrammering is een subroutine een reeks programma-instructies die een specifieke taak uitvoeren, verpakt als een eenheid. Deze eenheid kan dan overal in programma's worden gebruikt waar die specifieke taak moet worden uitgevoerd. Subprogramma's kunnen worden gedefinieerd binnen programma's of afzonderlijk in bibliotheken die door meerdere programma's kunnen worden gebruikt. In verschillende programmeertalen kan een subroutine een procedure, een functie, een routine, een methode of een subprogramma worden genoemd. Soms wordt de algemene term aanroepbare eenheid gebruikt. Zoals de naam subprogramma suggereert, gedraagt een subroutine zich ongeveer hetzelfde als een computerprogramma dat wordt gebruikt als een stap in een groter programma of een ander subprogramma. Een subroutine wordt vaak zo gecodeerd dat deze meerdere keren kan worden gestart (aangeroepen) en/of vanaf meerdere plaatsen tijdens een uitvoering van het programma, inclusief vanuit andere subroutines, en dan terug kan worden gebranched (terug kan keren) naar de volgende instructie na de aanroep zodra de taak van de subroutine is voltooid. Maurice Wilkes, David Wheeler en Stanley Gill worden genoemd als de uitvinders van dit concept, dat zij een gesloten subroutine noemden, in tegenstelling tot een open subroutine of macro. Subroutines zijn een krachtig programmeergereedschap en de syntaxis van veel programmeertalen bevat ondersteuning voor het schrijven en gebruiken ervan. Een oordeelkundig gebruik van subroutines (bijvoorbeeld door de gestructureerde programmeeraanpak) kan vaak de kosten van het ontwikkelen en onderhouden van een groot programma aanzienlijk verlagen, terwijl de kwaliteit en betrouwbaarheid ervan toeneemt. Subroutines, vaak verzameld in bibliotheken, zijn een belangrijk mechanisme voor het delen en uitwisselen van software. De discipline van objectgeoriënteerd programmeren is gebaseerd op objecten en methoden (die subroutines zijn die aan deze objecten of objectklassen zijn gekoppeld). In de compilatiemethode die threaded code wordt genoemd, is het uitvoerbare programma in feite een opeenvolging van subroutine-aanroepen.
