software:cause_of_bug
差分
このページの2つのバージョン間の差分を表示します。
| software:cause_of_bug [2022/10/10] – 作成 administrator | software:cause_of_bug [2022/10/10] (現在) – 外部編集 (不明な日付) 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ===== バグが起きる原因 ===== | ||
| + | ソフトやアプリのプログラムが、不具合で正常な動作をしないことをバグといいます。その原因のほとんどは、人間のミスです。 | ||
| + | 簡単な例を実際のプログラムで説明します。 | ||
| + | |||
| + | 1つ目は、ウェブアプリでよく使われるperlというプログラミング言語を使って、iiという変数(一時的にメモリにデータを保存するもの)を用意し、それに1をたして画面表示する(print)というプログラムを書いたものです。 | ||
| + | |||
| + | 最初がゼロなので、1をたすと1になります。perlでは、変数は初期化されています。ただし、タイピングミスでiiではなく、iiiとタイプミスをしたら当然正しい計算結果は得られません。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 2つ目は、ソフトを作るときに使われるC言語というプログラミング言語です。同じように変数を用意し、1をたしています。C言語の場合、変数は初期化されないので、プログラマーがきちんと0を代入するとかの処理をしないといけないのですが、忘れてしまうと予想外の結果となります。繰り返し処理でこのミスをすると、プログラムは暴走するかもしれません。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 最近のソフトやアプリのプログラムは、高度に複雑化していますが、バグを探すと、案外たった1文字の打ち間違いが原因だったりします。NASAの金星探査機マリナー1号が打ち上げに失敗し、大西洋に沈んだのも、プログラムのたった1文字の伝達ミスが原因ということです。 | ||
