|
2000年問題(にせんねんもんだい)は、グレゴリオ暦2000年になるとコンピュータが誤作動する可能性があるとされた年問題である。Y2K問題(ワイツーケイもんだい:"Y"は年(''year'')、"K"はキロ(''kilo''))、ミレニアム・バグ(''millennium bug'')とも呼ばれた。'year'')、"K"はキロ(''kilo''))、ミレニアム・バグ(''millennium bug'')とも呼ばれた。 ミレニアム・バグ(''millennium bug'')とも呼ばれた。 == 原因 == 直接の原因は、プログラム内で日付を扱う際の年数の表現を下2桁だけにしたことである。COBOLやFORTRANのような古いプログラミング言語ではデータ型に「日付型」が用意されていない。したがって、プログラム内では、年数をグレゴリオ暦の下2桁だけの「文字型」で表現していることがある。この方式では2000年が内部で00年となるので、これを1900年とみなしてしまい、例えば「データベースを日付順に並べ替える処理をすると、順序が狂う」などの誤作動につながる可能性があるとされた。 また、2000年は400年に一度の特別な閏年であって閏日(2月29日)があるのに、その処理をしていないプログラムもあった。現行の太陽暦であるグレゴリオ暦では、閏年について次の規則がある。 # 4で割り切れる年は閏年とする。 # 1.のうち、100で割り切れる年は閏年としない(平年)。 # 2.のうち、400で割り切れる年は閏年とする。 したがって、2000年は閏年だった(1900年や2100年は4で割り切れるが閏年ではない)。しかし、誤って1.と2.だけを適用し、閏年としないプログラムがあったので、この対応も併せて必要とされた。 コンピュータの初期は、リソース(特にメモリ)の費用負担が大きく、できるだけメモリを節約するプログラムが要求された。年号を下2桁で表すことによってリソースを節約をするのは、当時のプログラマの間では当然の技法であった。そのようなプログラムの多くは1960年代から1980年代頃に開発された。当事者は「2000年までには、何らかの改良が加えられるか、全く新しいプログラムが運用されるだろう」との前提でいたので、特にこの問題に対する対策を施していないことが多かった。2000年問題が表面化した際は、プログラムを作成した技術者の退職などもあり、手作業でのプログラムの確認と修正が必要になることが多かった。 これらのプログラムが作成された時点で既に、多くの国で様々な領域や分野でコンピュータが使用されていたので、思わぬところでの機能停止の危険があり得ることが指摘されていた。これらの問題によって、物流その他の社会運営上の不具合の発生などが予想され、国際経済が深刻な不況に陥る可能性を指摘する声もあった。一部には、カレンダーをもたない独立した組込みシステムの誤動作の不安を煽るなど、あたかもフェイルセーフで設計されたものがこの世にないかのように騒ぐなどの過剰反応も見られた。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「2000年問題」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Year 2000 problem 」があります。 スポンサード リンク
|