ウィーラー・ジャンプ
ルーチンに飛び込んでも帰り道を見失わずに済ませる技法。1949年に発明されたサブルーチン呼び出しである。
EDSAC で David Wheeler は、複数の場所から呼ばれるルーチンが戻り先をどう知るか、という問題を解いた。呼び出し側はジャンプの直前に自分の位置をアキュムレータに置く。ルーチンの最初の命令がその値を完成したジャンプ命令に変え、自分の最後の命令に上書きする。ルーチンは呼び出しごとに自分の終わり方を作り替え、呼び出し側は仕組みを何も知らなくてよい。
これでコードが再利用可能になり、EDSAC には計算機史上初のサブルーチンライブラリができた。ファイリングキャビネットに入った紙テープを、プログラマーが自分のテープに複写して使うものだ。この方法は1951年の Wilkes、Wheeler、Gill による教科書(この主題で最初のもの)にまとめられた。弱点はすぐ分かる。戻りアドレスをコード自体に書き込むので、ルーチンは自分自身を呼べない。二度目の呼び出しが一度目を上書きしてしまうのだ。再帰は、コールスタックの登場を待たねばならなかった。