プログラミング技法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/29 19:45 UTC 版)
初期のプログラマは今日では推奨されない技法、特にコード書き換えを使う必要があった。当初インデックスレジスタがなかったため、配列にアクセスするには命令内のアドレス部分を実行時に書き換えてやる必要があった。 デビッド・ホイーラーはこのプロジェクトで世界初の計算機科学のPhDを取得したが、サブルーチンの概念の発明者とされている。ルーチンにジャンプする命令のあるアドレスに1を加えたアドレスをレジスタに格納した状態でルーチンにジャンプする(これを Wheeler jump と呼ぶ)。サブルーチン側はその渡されたアドレスで最後尾のジャンプ命令のアドレス部を書き換える。この書き換えをサブルーチンの先頭で行えば、さらに別のサブルーチンコールを呼ぶ、入れ子を実現することもできる(再帰はできない、ということに注意)。 ただし当時はリロケータブルバイナリなどといったものがあるわけでは当然なく、プログラマがジャンプ先の位置を計算する必要があり、各ルーチンの長さを予め正確に知っている必要があった。サブルーチンはあらかじめマスターテープとして作られており、それをテープ上でプログラム本体の後ろに続けてコピーするというならば「人力リンク」のような作業が行われていた(そのため、サブルーチンの先頭位置はプログラムによって異なるが、コーディングの際には事前のアドレス計算により求めておく必要があった)。 また重要なこととして、以上のような技法を初めとした、本機の利用によって得られた経験と、具体的にそのプログラムとを The Preparation of Programs for an Electronic Digital Computer という書籍として公刊し、世界的に広く読まれた、ということが挙げられる。当時は米国の一部のコンピュータのように、軍や兵器や米国の安全に関与しているため秘密にすることが強要され知見が全く共有されなかった等といった例もあった中で、同書は世界的に「プログラミング」の実例を広めたのみならず、その後にプログラム内蔵方式(乃至、ノイマン型)コンピュータを設計する者への指針ともなったなど、広く世界に貢献した。
※この「プログラミング技法」の解説は、「EDSAC」の解説の一部です。
「プログラミング技法」を含む「EDSAC」の記事については、「EDSAC」の概要を参照ください。
- プログラミング技法のページへのリンク