Summary |
要約 |
>Top
0. Prologue:
- Bug:
- 1. A true bug.
- 2. An insect or similar organism, such as a centipede or an
earwig.
- A disease-producing microorganism:*a flu bug.
- The illness or disease so produced:#intestinal flu
- A defect or difficulty, as in a system or design.
- (Computer Science) A defect in the code or routine
of a program.
- An enthusiasm or obsession:*got bitten by the writing bug.
- An electronic listening device, such as a hidden microphone
or wiretap, used in surveillance
- (Mafia) sigint, tip, dope, secret
- Asterisk (*)
- (Poker) joker as wild card
- cahill, plunker
- junk, five-an-ten, dime
- (Jail) crack, insanity, lunatic
- Big name, brass, VIP
|
0. プロローグ:
- バグ (bug):
- (小さな) 虫、昆虫.
- ムガデ、ヤスデ、ハサミムシ
- ウイルス*a flu bug(流感のウイルス).
- 微生物、菌#intestinal flu(腸菌)
- システム・設計の欠陥・故障
- (コンピュータ). プログラム・コードの欠陥
- 熱中・熱狂、*got the sports-car bug.(スポーツカーに夢中)
- 盗聴マイク・小型警報装置 *bug someone's phone (盗聴する)
- (マフィア) 秘密情報 *put a bug in a person's ear (耳打ちする)
- 星印(*)
- (ポーカー)ジョーカーのワイルドカード
- 擬餌針
- 安物、がらくた
- (刑務所) 精神異常*bug test (心理テスト)
- 偉い人・偉ぶる人*a big bug(お偉方)
|
>Top
1. Y2K and Bugs:
- The fatal day of Jan. 1, 2000 has come. The last year it reminded
us a bitter experience caused by a specter of Y2K. At the start
of new millennium, I would review the defects of computer program,
or in more generally, 'bugs' lurking in computer systems.
- To begin with, the term of 'bug' is ambiguous. 'Bug' has meanings
of insect, any kind of worm, even includes bacteria and virus, now
expressing various defects or faults of computer programs. Computer
history tells us that a moth actually caught between computer circuit
caused hung up of the computer. Thereafter 'bug' means defect of
a computer program, and 'debugging' or 'bug fix' means amending
of such defect.
- Software developer calls bugs in a way of 'anomalies', 'unexpected
result', 'wrongful terminations', 'undocumented features'. These
expression implies that bugs are necessary and unavoidable process
of improvement of the programs.
- Y2K problem, in particular, is caused by two digit expression
of years instead of four, and arrival of very special number of
year 2000. This phenomenon should be called a kind of system fault
in information society, which is similar to starvation or poor harvest
in the agriculture society, or economic panic or depression in the
industrial society. (as mentioned by Prof. S. Kumon of Glocom, 1999)
- I would amplify that similar discontinuities at global level have
occurred several times during long geological history, like tectonic
movement, change of temperature or total environment, fall of meteorites,
extinction and alternation of biosphere and so on.
|
1. Y2Kとバグ:
- コンピュータ2000年問題 (Y2K) を契機として、昨年はシステムの本質について実に様々なことを苦い教訓を得ることができた。この問題を少し遠くから観察することで、この問題の中に潜むコンピュータプログラムの不備、いわゆるバグの本質再考してみたい。
- まずバグとはあいまいな用語である。この定義の中にまずバグがあるのではないか。辞書によると、BUGとは、昆虫、虫一般から始まり、菌もウイルスも含まれる。転じて機械やプログラムの欠陥、故障、誤りの意となる。
- 実際に、コンピュータがハングする原因に一匹の蛾がコンピュータ回路に挟まったいたことから、BUGという言葉が生まれ、それを直す処理をDEBUGGINGあるいはBUG
FIXと言われるようになったとのこと。
- BUGのことをソフト開発会社は別名、異常なもの(anomalies)、予期せぬ結果(unexpected result)、悪意の終了(wrongful
terminations)、文書化されない特徴(undocumented features)などと表現しており、いかにバグが、プログラム開発において普遍的で、不可避で、かつ日常的な事象であることを示している。
- 特にY2Kは、2000年という特殊な年号表記を迎えたことによる対応不備が原因で、必然的に起こった事象で、これは、農業社会の飢餓や凶作、産業社会の恐慌・不況にも似た情報社会のシステム故障というべきとの指摘がある。 (公文俊平Glocom所長,
1999)
- いや敷衍すれば、遥かそれ以前の地球の歴史を通じて、不連続的な出来事、即ち、地殻変動、温度変化、氷河期、地球の極性反転、隕石落下、生物種の絶滅と交代の現象などがしばしば起こっているのだ。
|
>Top
2. Why bugs appear?:
- According to the above viewpoint, I would trace the essence of
bugs hidden in computer programs, and try to classify them from
a viewpoint of an insect collector. Classification of bugs may help
us to understand their behaviors, clearing our stance and measures
to cope with.
- As a vertical axis, whether the causes can be estimated,
surveyed and analyzed, or cannot be analyzed, treated and remedied.
- As a horizontal axis, whether the causes are certain to
occur, or uncertain to appear.
- There may be another axis whether it is easy or difficult to recover
or remedy the phenomena, but this dimension is hidden in this chart.
- All computer bugs are human made, but the world of bugs are mysteriously
similar to the real insect world where our human knowledge could
not reach yet.
- Bug is a really smart expression. And it is also human activities
that infect computers with virus out of malice as well as disinfect
by vaccine software. Computer society never want to coexist such
virus activities but cannot liquidate such malicious intention.
|
2. なぜバグは発生するか:
- 我々は、もっとバグの本質を直視して、バグの英語の語義のように見えない小さなものように扱うのではなく、むしろ昆虫採集のような視点でその種別分類を試みることによって、バグ分析し、かつそれに立ち向かう我々のスタンスを明確にしようことを提案したい。
- まず縦軸として、原因が想定・究明・分析できるか、治療法・対処法が確立しているか、あるいは原因不明で治療も対処の方法もなく、試行錯誤の状況かどうかの分類を取る。
- 次に横軸としては、その事象がいつ発生するか、発生することが確定的かどうか、あるいは、発生するかしないかは不明で、その可能性がどの程度かも不確定かどうかの分類を取る。
- 実は、別の次元からの分類も可能であって、治療・対処法が容易か、あるいは困難かによって分類することも可能であるが、ここではその次元が隠れている。
- コンピュータのバグは人間が作り出したにもかかわらずこのバグの世界は、昆虫の世界と同様に、人間の知恵の及ばない所も多く、まさにバグとは言い得て妙である。
- しかもそのバグを退治することも、あるいはウイルスのようにはびこらせることをビジネス?あるいは趣味?としているのも人間である。コンピュータ社会は、これらと共存する気はないが、やむなく共生しているのかも知れない。
|
>Top
3. Kinds of bugs:
- It is useful to classify and analyze various computer bugs.
- If we make a Computer Bug Museum, which may have some educational
reasoning to show lessons and reflection of computer culture.
- Most of bugs can be plotted on the above four axis, showing relative
relationship among similar but different bugs.
- Spaghetti program:
Spaghetti program is an expression of a very complicated program.
Complexity itself may cause bugs, and are difficult to be debugged.
Also time make harder in debugging them.
- Contradiction among programs:
Contraction may be also occurs in spaghetti programs. If there are
plural incommunicative technical superintendents, the system may
be contradictory.
- Careless overlooking:
We may overlook in debugging process, and even slight bugs may cause
serious troubles. We should recognize that there are much more errors
than correct answer.
- Mis-reporting or hushing up:
Once completion of debugging is reported, it becomes more difficult
to find the escaped bugs. If it reported from authorities, it becomes
very hard to trace the hiding place.
- Out of the assumption:
The old programmers could not assume their programs to be used over
year 2000
- Restriction in use:
Computer programs are usually made considering several conditions
in use and possible human errors during operation, but still errors
can occur surpassing programmers consideration.
There are several reserved numbers having special meaning in programs;
for example "9999" means "end of the program".
- Internal attack or suicide:
Internal attack or suicidal explosion may cause irregular or emergent
stop of the operation by fail-safe mechanism.
- Poor Design:
Even carefully designed system may cause some troubles. Troubles
are usually more imaginative than the original designing.
- Overlook:
Overlook or careless blunder in human checking may always occur.
- Misーreport:
There is difference how to behave in the case of making error. Some
immediately admit the errors and try to take proper action, or heisted
to admit them and try to restore them. These are closely related
to ethical or virtuous problems.
- Errors in repairs:
If the repair or debugging is insufficient, there remains still
bugs and may cause another errors. Modern big science like airplane
or nuclear plant may include such errors during repairs.
- Virus:
Malicious computer virus becomes uncontrollable even by its producer.
Network society must tackle with such virus attack to prevent its
proliferation with the help of goodwill hackers.
- Hidden bugs:
Programs bugs has similarly latent period. Hidden bugs are difficult
to be detected. Y2K problem may occur beyond beginning of January
2000, which may appear later some time.
|
3. バグの種類:
- ウイルスを含むコンピュータソフトウェアのバグを、分類することが重要である。コンピュータ・バグ博物館を作ったら、コンピュータ文化の良き反省と教訓と教育の場になるのではないか?
- 実際のバグは複雑で上記の4軸のすべてに該当するような気もするが、敢えてプロットすることで、さまざまなバグの相対的な位置関係が明らかになり、似て非なるバグが区別できる。
- スパゲッテ・プログラム:
非常に複雑化したプログラムはスパゲッティプログラムと呼ばれ、その複雑さゆえにいろいろなバグを発生しやすく、かつ見つけにくい。時間が経つとほど見つけにくくなることも似ている。
- プログラム間の相互矛盾:
これもスパゲッティプログラムの中によく発生する。システムにおいても、意志疎通のうまくいかないシステム管理者が複数いる場合、矛盾が生じる。
- 見落とし・うっかり:
これは、人間の常で、些細なことであっても致命傷になる場合が多い。これもスパゲッティ化と関連ある。本来、誤謬の方が正解より圧倒的に数が多いことを認識する必要がある。
- 誤報告・もみ消し:
これは、デバックの結果、問題なしとして報告するケース。一度OKを出したプログラムに逃げおおせたバグを再発見することは至難である。特に権威のある所 (神奈川県警など) からのこれらは非常に困る。
- 想定外の使用:
Y2Kのように2000年を超えて使い続けるとはまさか想定していなかった。
- 使用上の制約条件:
入力条件を予め制約を設けたり、人間が犯しやすい過入力や誤操作も考慮して作成するが、誤りを犯すことの創造力は、それの対応を考慮する創造力をしばしば凌駕する。
9999など入力しないことなど勝手に条件づけられることもある。
- 内部からの攻撃・自殺:
意図的に攻撃される場合や自爆・自殺など内部の自己否定によるシステムの崩壊など、フェイスセイフの仕組みで、システムダウンが発生する。
- 設計ミス:
慎重にベストを尽くして作成された設計であっても、予想外のトラブルに見舞われる。通常はトラブルの方が、オリジナルの設計よりも想像力に富むと言える。
- 見落とし:
これは見落とし・うっかりミスであって、人間は常に (個人差はあるものの) 必ずミスを犯す。
- 誤報告:
上記のミス発見した場合の対応方法にも個人差がある。速やかにミスを認めて適切な処置を取ろうとするか、あるいはミスを認めようとせずになんとか回復しようとするかです。これらの対応仕方こそが、まさに倫理感が問われる問題でもある。
- 修理ミス:
ミスが共有され、対処がなされたとしても、その修正が不十分な場合はミスが残り、新たなミスを生じさせることもあり得る。航空機事故や原発事故などの巨大科学の分野でも修理ミスは起こり得る現象である。
- ウイルス:
脳もウイルスもコンピュータの擬人化表現だが、時にはウイルスの被害は、制作者すら制御不能な状態となることもある。ネットワーク社会にとってその予防には善意のハッカーの力を借りて対処するしかない。
- 潜伏中のバグ:
プログラムバグにも潜伏期間がある。まだ顕在化していないバグの発見は難しい。Y2K問題が2000年の正月だけでなく、しばらく経ってから顕在化することもあり得る。
|
>Top
4. Bugs are inevitalbe:
- Computer bugs are brought by;
- rapid growth and rapid change of developing environment of programs,
- participation of many programmers and change of generations,
- rapid change or discontinuous progress in development methodology
and tools,
- indefinite role or status of programmers, and
- development of network which enables instant exchange of digital
data.
- Y2K problem may correspond to a global effect caused by falling
of a meteorite on the earth which will segregate the systems eligible
to survive in 21st century.
|
4. バグは不可避:
- コンピュータバグが不可避となっている原因として、
- プログラム開発環境の急激な成長と変化、
- 特に複数のプログラマーの参画とその世代交代、
- 手法やツールの急激・不連続な進歩、
- SEという職務機能・役割の曖昧さ、
- デジタルデータの即時流通を可能にするグローバルなネットワークの発展
等が考えられる。
- Y2K問題は、隕石落下による世界的規模の影響に匹敵するとも考えられる。いわばシステムの新旧のスクリーニングがかけれ、21世紀に向けて生き延びるシステムが選別される。
|
>Top 5. DNA and Life:
- Life is maintained by reproduction of DNA (Deoxyribonucleic Acid)
, which contains intelligent debugging mechanism during long history
of life.
- DNA tries to make copy as correct as possible, and miscopied product
mostly cannot be allowed to survive. Only exceptional miscopy may
lead to 'evolution'.
- DNA tries to many trials of copying as long as the species continue.
During such endless trials several version of the species best fit
to the environment appears.
- Defects of DNA due to radiation or activated oxygen can be repaired
to certain degree by repairing enzymes, but also DNA has an aging
process such as a limit of reproduction (Telomere), or apoptosis
(programed cell death) mechanism. An individual survives by death
of cell, while a species survives by death of an individual.
- Only reproductive cells are released from aging process by special
enzyme called 'Teromerase' which can reset the limit of reproduction.
Very limited number of new born embryo can grow as a successor of
the next generation.
- The environment on the earth is mostly stable with natural disaster
rarely occurs. Human disaster (war or genocide) is not originally
considered, and human developed brain may be unexpected threat to
the earth environment.
- Numbers recognized by human being have several discontinuity or
singularity. Year 2000 is one of the special number for human history,
and more serious discontinuous like year 10,000 comes in future.
- Life is enforced to continue endless battle against various bugs.
Both of life and bugs evolve, and neither side gains total victory
against the other; it is a kind of coexistence. It is sensible that
a terminology of 'bug' contains all kinds of invisibly small, innumerable,
unpleasant and incommunicable creature.
- How human beings are looked from a standpoint of bugs? People
are recognized as incredibly big creatures with complicated body
and mind, who are very different in behavior among individuals.
Most of people are enemies of bugs, but rare are friends of bugs
who cultivate and distribute bugs. People prefer productivity but
often behave destructively; sometimes act sel-tormenting, self-crashing,
or even suicide themselves.
|
5. DNAと生命:
- DNAの複製によって生命を維持する方法には、長い生命の歴史を通じたバグ対策ともいうべき知恵が含まれている。
- DNAは忠実にコピーするものの、コピーのバグのほとんどは生存が許されずに除去される。非常に例外的にコピーミスが「進化」につながることがある。
- DNAは、効率よく沢山の試行を、その種が続く限り繰り返す。その長期間の繰り返しの結果、環境に適応した種のVersion up
が行われる。
- 放射線等によるDNAの傷はある程度までは修理酵素で修理されるが、それ以上は、DNA複製回数の制限 (テロメア) などアポトーシス (プログラム化された細胞死) によって対処される。いばは細胞死によって個体を活かし、さらに個体死によって種を活かすことになる。
- 生殖細胞は、酵素 (テロメラーゼ) によりこの制限がなくなるが、成長過程でのスクリーニングも多く、次の生殖まで継投する役目で少数選ばれたのが生殖細胞である。
- 地球環境は、概ね安定で、希に異常・天災が発生する。人災は考慮外だったので、地球と生命との共存関係に人間の存在自体 (特にその頭脳) が地球環境にとって予定外の驚異となっている。
- 人間の認識している数学にも多くの不連続・特異点が存在する。2000年はその内のごく初期的な特殊な数字に過ぎず、今後も引き続き発生する。 (西暦10000年など)
- 生命は、バグとの不断の闘いであり、生命もバグもそれぞれ進化しつつそれぞれが壊滅することもなく、どちらも永遠に勝利しないという意味ではバグとの共存でもある。
その意味では、小さくて、見えにくく、気持ち悪く、何を考えているかわからないもの一般を「ムシ」といい、「バグ」と表現した先人の知恵には感服する。
- バグから人間を見たらどうなるか? 人間はとてつもなく大きくて、外見は見えやすいが心は見えにくく、美を追究しているようで不自然きわまりなく、個体差は非常に大きく、相互矛盾を抱えており、一斉にバグ退治をするかと思えば、他方ではバグを培養・頒布したりする。また人間は、生産的・秩序的を好む反面で破壊的・無秩序的あるいはさらに自爆的・自虐的・自殺的ですらあるという意味では、バグの敵か味方かわからない。
|