前回は、簡単なプログラムを用意して、机上デバッグのやりかたを説明しました。今回は、机上デバッグを行なう理由を考えてみます。
なぜ机上デバッグという方法を行なうようになったのか?¶
まずは、なぜこのようなデバッグ方法を実施するようになったのかを、自分なりに推測してみました。[1]
自分が初めてプログラミングを行なったのは、NEC の N5200 というパーソナルコンピュータです。確か、8086 8MHz、メモリ 百数十キロバイト、8 インチフロッピーディスクといった環境です。この環境で Z80 で記述するプログラムの開発を行なっていました。
当時のプログラムの修正から実行までの手順は、以下の通りです。
- ソースコードの編集
- エディターソフトが格納されているフロッピーディスクを挿入する。
- パソコンの電源を入れる。
- 起動したらソースファイルが格納されているフロッピーディスクを挿入し、修正を行なう。
- ソースコードの修正が完了したら、パソコンの電源を切る。
- アセンブル
- アセンブラソフトが格納されているフロッピーディスクを挿入する。
- パソコンの電源を入れる。
- 起動したらソースファイルが格納されているフロッピーディスクとオブジェクトコードを格納するフロッピーディスクを挿入する。
- アセンブルを実行する。
- アセンブルが完了したら、パソコンの電源を切る。
- リンク
- リンカソフトが格納されているフロッピーディスクを挿入する。
- パソコンの電源を入れる。
- 起動したらオブジェクトコードを格納したフロッピーディスクと実行コードを格納するフロッピーディスクを挿入する。
- リンカを実行する。
- リンクが完了したら、パソコンの電源を切る。
- 実行
- 実行コードを格納したフロッピーディスクをターゲットマシンに挿入する。
- ターゲットマシンの電源を入れる。
- 動作確認開始。
ソースコードの修正に要する時間は現在と変わりませんが、エディタ、アセンブラ、リンカなどのソフトの起動に、数十秒程度掛かっていたと思います。また、アセンブル、リンクには数分から十数分程度掛かっていたと思います。
ということで、ほんの数行の修正でも、10~20分程度は掛かっていたと思います。
また、アセンブル/リンク時にエラーが発生した場合、また余分に時間が掛かります。
このように、ちょっとした修正でも、現代のプログラミング環境からは想像もできないほど、膨大な時間が掛かります。このため、当時はなるべくプログラムを修正しなくてすむように努力していました。その結果机上デバッグという手法が生まれたのではないかと考えています。
- バグがあれば、プログラムを修正しなければならない。
- プログラムを修正すれば、アセンブル/リンクを行なわなければならない。
これらの作業には、非常に時間が掛かる。ということであれば、
- バグがなければ、プログラムの修正は行なわない。
- プログラムを修正しなければ、アセンブル/リンクは行なわない。
ということで、プログラムの修正を極力避けるため、事前に机上デバッグを徹底的に行ない、アセンブル・リンクなどに要する時間を省いていたのだと思います。
つづく
[1] | ちなみに、自分は 1983年、とあるソフトウェア開発会社に就職し、その際に初めてプログラム作成を手掛けました。当時先輩からは「机上デバッグをしなさい」と何度もいわれましたが、その理由は特に聞いていません。ということで、ここで記述した「机上デバッグを行なう理由」は、あくまでも推測です。 |