更新:2008年8月16日
現代キーワードQ&A事典の表紙へ

コンピュータ西暦2000年問題(Y2K)

●初出:月刊『潮』1997年9月号「市民講座」●執筆:坂本 衛

Questionニュースで「西暦二〇〇〇年問題」という言葉を
耳にしました。どんな問題なんですか?

Answerこれはコンピュータの世界の話です。コンピュータは、「ハードウエア」と呼ばれる電子計算機の機械本体と、「ソフトウエア」と呼ばれる計算機が作業するための指令書(プログラム)から、成り立っています。

 プログラムは「AとBを加えXとせよ」「CとDを比較し大きいほうをYとせよ」「XからYを引きZとせよ」というような命令文の集まりと考えてください。この命令は、磁気テープやフロッピー・ディスクやCD−ROMに書き込んでおき、コンピュータに読ませることができます。コンピュータは異なるプログラムを読み込むことにより、計算機になったり、ワープロになったり、ゲーム機になったりするわけです。

 さて、コンピュータがあつかう数字に、年月日のデータがあります。給与や年金・保険の支払い、商品の受発注、チケットの予約などをコンピュータが処理するときは、年月日のデータが必要です。というよりも、数値であれ文章であれデータをコンピュータに入力するときは、日付入りで打ち込むのが普通なのです。

 その際、コンピュータの世界では一九九七年なら「97」というように、年を下二ケタの数字で表わすことが広く行われてきました。プログラムに、そのように処理せよという命令が書いてあるわけです。

 そこで、西暦二〇〇〇年になったらどうなのかという問題が生じます。キーボードから「97」と打ち込むと一九九七年と判断するようにプログラムが書かれているコンピュータに「00」と入力すると、一九〇〇年と判断したり、エラー表示を出して受け付けなかったり、ということが起こるのです。

 すると、給与や年金・保険の支払い、商品の受発注、チケットの予約といったシステムが、これまでのように正常に動かなくなります。これが、コンピュータの「西暦二〇〇〇年問題」なのです。

二ケタ表示が続いた理由は?

Questionいずれ二〇〇〇年が来ることは、子供でもわかるでしょう。
なぜ、そのようなプログラムが作られたんですか?

Answerもちろん、最近のコンピュータは、二〇〇〇年にも当然使われるという前提ですから、この問題が生じないようにプログラムが書いてあります。たとえば、年は最初から四ケタの数字で処理するようになっています。

 問題は古いコンピュータ。一九八〇年代までに導入されたコンピュータのプログラムは、データの記憶容量を節約したり、計算を早くしたり、入力の手間を省くために、西暦年を二ケタで処理するように書かれているのです。そのことが、二〇年もたって大問題になると予測した人は、ほとんどいませんでした。

 それ以来、コンピュータがハードウエアとソフトウエアに分かれていること自体が、年の二ケタ表示を存続させた、ともいえます。

 ハードウエアつまり機械本体は、昔は部屋全体を占領していたものが今は膝の上に乗るというように、小型化・高性能化が進みました。対して、ソフトウエアは古いものが改良されながら使われ続けます。ソフトウエアに、バージョン5(改訂第5版)というような表示がつくのは、そのためです。改良され使いやすくなっても、プログラムの基本は大きく変わりません。最初に年は二ケタで表示すると決めれば、一〇年改良が重ねられても、やはり二ケタのままなのが普通なのです。

 ところが一九九三年九月、アメリカの専門誌『コンピュータ・ワールド』が「最後の審判の日」というタイトルで、二〇〇〇年問題を初めて伝えました。日本でも翌年に報道されましたが、あまり大きな話題にはなりませんでした。それが、二〇〇〇年まであと三年という今、ようやくクローズアップされてきたわけです。

かかるコストは一兆円?

Questionでも、コンピュータのプログラムのうち、年に関係する部分だけを手直しすればよいのでしょう。
そんなに大変なことなんですか?

Answerこれが、思いのほか大変なのです。まず、企業や官庁がもっている大型・中型コンピュータ(小型オフィス・コンピュータやパソコンは除く)は二万数千台といわれます。その半分はひたすら数値計算をおこなうものとして除き、残りの半分もすでに二〇〇〇年問題を処理済みとすると、手直しの対象となるコンピュータは数千台になります。

 そして、この一台一台が何千本かのプログラムをもっているのです。日本航空では、対象となるソフトが六万本あるそうです。さらに、そのプログラムの一本一本が、一〇〇〇行単位の命令から成り立っています。

 こうしたプログラムを、しらみつぶしに調べて、年の処理の命令が書いてある行を見つけ、きちんと修正するというのは、単純ですがとても膨大な作業です。しかも、おカネと人と時間がかかります。日本IBMが九五年に試算したところによると、プログラム数が二五〇〇本の企業で、修正に必要な人と時間は、一七五〇人月(一七五〇人で一月)と見込まれています。プログラマー一〇〇人がかかりっきりで作業して、一年半近くかかるのです。日本で二〇〇〇年問題を処理するには一兆円程度かかるという声もあがっています。

 問題はさらにあります。企業が一斉に二〇〇〇年までに問題を解決しようとすると、プログラマー不足が起こるという心配です。しかも、手直しが必要なプログラムの多くは、COBOL(コボル)というプログラム言語で書かれており、これが最近のソフトウエアには使われない旧世代の言語。若いプログラマーには、知らない人が少なくないのです。習得したとしても、二〇〇〇年以降は使いものになりませんから、わざわざ覚えようという人は少ないのではないかといわれています。

 三菱電機では、技術者が八〇〇人程度必要と見込み、プログラミング経験のある定年退職者や結婚退職者のリストアップを始めています。

残された時間は少ない

Question子供が父親のお下がりのパソコンを使っていますが、
問題はありませんか?

Answerメーカーからの情報が少ないので、はっきりしたことはいえませんが、問題が発生する可能性はあります。パソコンには時計が組み込まれていますから、次のようなテストをしてみるとよいと思でしょう。まず、パソコンを初めて動かした時のように、日付と時刻の初期設定画面にして「一九九九年一二月三一日午後一一時五八分」と入力するのです。そして一度電源を切り、三分後に電源を入れます。時刻が「二〇〇〇年一月一日午前〇時一分」ならオーケー。しかし「一九八〇年一月四日」などと出たら問題。二〇〇〇年一月につくった文書が、一九八〇年の位置にしまわれたりして、やっかいなことになるでしょう。もっとも時間だけが間違っているパソコンとして使うことはできますが。

 身近な例でいうと、同じようなことは、録画予約をするビデオや、日付の入るカメラでも起こります。

Questionメーカーの責任は
問えないのでしょうか?

Answerコンピュータ・メーカーやソフトウエア会社の責任は大きいと思いますが、無料でソフトウエアを取り替えよとは要求できません。というのは、西暦年の二ケタ表示はJIS規格などにのっとったもので、欠陥プログラムとまではいえないからです。

 メーカーが、プログラム修正のための支援策を打ち出すなど、問題の解決に最大限努力するのは当然です。各社はすでにさまざまな有償サービスを発表しています。一方ユーザー側も、メーカーと協力して、いかに迅速に問題を解決するかが問われています。もうあまり時間はないのですから。

「現代キーワードQ&A事典」サイト内の文章に関するすべての権利は、執筆者・坂本 衛が有しています。
引用するときは、初出の誌名・年月号およびサイト名を必ず明記してください。
Copyright © 1997-2015 Mamoru SAKAMOTO All rights reserved.

Valid CSS! Valid XHTML 1.0! Another HTML-lint がんばりましょう! 月刊「潮」 坂本 衛 すべてを疑え!!

現代キーワードQ&A事典の表紙へ
inserted by FC2 system