IT-lexicon › Programmeren › Wheeler jump

Wheeler jump

Programmeren Svenska → Bijgewerkt: 2026-10-05

De truc waarmee je in een routine kon springen en toch de weg terug vond — de subroutine-aanroep, uitgevonden in 1949.

Op de EDSAC loste David Wheeler het probleem op dat een routine die vanaf meerdere plekken wordt aangeroepen moet weten waar hij terug moet keren. De aanroeper zette vlak voor de sprong zijn eigen positie in de accumulator; de eerste instructie van de routine maakte van die waarde een complete sprongopdracht en schreef die over zijn eigen laatste instructie heen. De routine paste zijn einde dus aan elke aanroep aan, en de aanroeper hoefde niets van het mechanisme te weten.

Daarmee werd code herbruikbaar en kreeg de EDSAC de eerste subroutinebibliotheek uit de computergeschiedenis: ponsbanden in een archiefkast die de programmeur in zijn eigen band kopieerde. De methode werd beschreven in het leerboek van Wilkes, Wheeler en Gill uit 1951, het eerste over dit onderwerp. De zwakte is meteen zichtbaar: omdat het terugkeeradres in de code zelf wordt gepatcht, kan een routine zichzelf niet aanroepen, want de tweede aanroep overschrijft de eerste. Recursie moest wachten op de call stack.

← Terug naar het lexicon