Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

今日は虫の日

$
0
0

虫、好き?嫌い?

▼本日限定!ブログスタンプ

あなたもスタンプをGETしよう

あなたもスタンプをGETしよう

また語呂合わせですね。

昆虫は結構好きで、写真を撮ったりしてますね。

しかも、トリミングしてかなり拡大してますので、昆虫のグロい部分が苦手な人は見ないほうがいいかもしれませんけどね。


子どもの頃、6月4日というと虫歯予防デーというのを思い出す。

虫歯の日ではなく、虫歯を予防を考える日である。


ウイルス駆除ソフトをウイルスソフトとか言っちゃう人いますよね。

コンピュータウイルスも所謂ソフトウェアなのだから、ウイルスソフトという文法に間違いはない。

しかし、ウイルス駆除ソフトとウイルスでは、狩る側と、狩られる側である。

英語にすると、アンチウイルスに対しての、ウイルスである。

アンチ(Anti)とは、漢字にすると、反とか対とか抗といったことで、アンチウイルスを漢字仮名交じり文にすると抗ウイルスってことですね。


コンピュータウイルスは、誰かしらが意図的に作ったプログラムである。

また、作った本人は意図していなくとも、プログラムの挙動が意図しない動きをすることがある。

所謂バグである。

コンピュータのプログラミングは、記述する順番が重要である。

この順番が入れ替わってしまうだけでバグが発生することがある。


例えば、ローマ数字の加算則から減算則を使ったものに変換するプログラムがあったとする。

ローマ数字では、アラビア数字の4をローマ数字にすると、加算則でIIIIと表したり、減算則でIVと表したりする。

同様に9は、VIIIIやIXとなる。

4の置換:ローマ数字の文字列中にIIIIの文字列を見つけたら、IVに置き換える。
9の置換:ローマ数字の文字列中にVIIIIの文字列を見つけたら、IXに置き換える。

という二つのプログラムのコードがあったとして、どちらが先で、どちらが後に記述しなくてはいけないか考えてみよう。

一般的に、小さな値から大きな値へと物事を考えがちである。
なので、4の置換をしてから、9の置換をしてしまう。

しかし、これではバグが発生するのである。

ローマ数字の文字列の変化を追ってみよう。

例えば、加算則のXVIIIIという文字列を減算則に変換してみよう。

XVIIII
↓4の置換を行おうとして、IIIIを見つけたのでIVに置き換える。
XVIV
↓9の置換を行おうとするが、特定の文字列が見つからない。
XVIV

9を置換するプログラムコードが記述されていても、先に4を置換するコードがあると、ローマ数字が変化してしまい、VIIIIという文字列は存在しなくなってしまうのである。

このようにプログラムでの変数の挙動を追う作業をデバッグと呼ぶ。

バグとはbugであり虫である。

昔、コンピュータのハードウェアに虫が入って特定の部品がショートして、プログラムが正常に動かなかったことに由来して、原因が虫によるものではなくても、プログラムが正常に動作しないことに対して、バグが居るといった慣用句が使われるようになる。

デバッグとはdebugであり、de-bugであり、de-という接頭語は減らすという意味があるものです。

つまり、虫(欠陥)を見つけては取り除い(修正し)て、減らしていく作業がデバッグなのです。


虫の日に、ちゃんと虫の話しに戻りましたね。

めでたし、めでたし。


Viewing all articles
Browse latest Browse all 5376

Trending Articles