プログラミングの超簡単な言い回し
読者の多くは、実際のプログラムにあまり接した経験がないかもしれない。そこで、プログラミングができる方には読み飛ばしてもらうとして、めちゃめちゃ簡単なプログラムの「仕組み」をまとめておこう(ここでは、簡単なBASIC言語の例を出すが、他の言語も似たり寄ったりである)。
プログラミングというと、何やら小難しい、意味不明のアルファベットと数字の羅列、みたいなイメージがあるかもしれないが、個々のパーツ、つまり命令文まで分解してみれば、きわめて簡単なことがわかるはずだ。
ここでは、プログラムで頻繁に出てくる「くりかえし」に焦点を当てよう。
X=0
FOR I=1 to 5
X=X+1
NEXT I
PRINT X
ここで使われているのは「FOR?NEXT」というくりかえしの文型だ。くりかえしの回数を記録するIという「カウンター」が1回から5回になるまで、Xに1を足し続けるのだ。あらかじめXという変数というか「箱」には0が入っている。ふつう、
X=X+1
などと書いたら、両辺からXを引いて、
0=0+1
つまり、
0=1
となって矛盾が生じてしまう! だが、プログラミングの場合、変数には時間の要素も含まれるので、実は、
新しいX=古いX+1
という意味なのだ。たとえば、「X」という札のついた、古い箱の中身がボール2個だとしたら、それにボールを1個足して、それを新しい箱Xに入れるから、中身はボール3個になる。この作業が終わったら、カウンターを見て、それが3回だったら、NEXT I、すなわち次のIである4回目の計算をする。そして、カウンターのIが5回になったら計算をやめ、答えの「5」を印刷して終わり。
今の場合、1回目の計算でXが1、2回目の計算でXが2……などとなって、最終的に答えは、X=5になるわけだ。
なぜ、このような簡単な計算を長々とプログラムを書いて実行するのか、疑問に思われるかもしれないが、実際には、あらゆる高等数学を駆使して、めちゃめちゃ複雑な計算を実行する。
JAXA(宇宙航空研究開発機構)が宇宙探査機を制御して惑星の軌道に乗せるのも、宇宙物理学者がアインシュタイン方程式を解いて宇宙の運命を計算するのも、投資会社が顧客から預かったお金の最適な運用を予測するのも、すべて、こういったプログラムの言い回しが何千、何万と集まった結果なのだ。
ところで、この「おもちゃ」プログラムで、最初にやった計算が、
X=0
だったわけだが、これがなかったらどうなるだろうか。その日、パソコンを立ち上げて最初の計算だったら、Xの値は0にリセットされているから心配いらない。だが、一日の業務の途中で、前の計算(=前の箱の中身)が残っていたらどうなるか。
たとえば箱の中にボールが5個入ったままだったとしたら? その場合、X=0と中身をリセットせずに計算を続行すると、5個のボールに5個のボールが足されて、答えはボール10個になってしまう。この10個という数が他の計算にも引き継がれていくと、しまいには、投資会社が大損をして潰れたり、探査機が壊れたりすることだってありうる。
いや、実は、冗談ではなく、2016年に打ち上げられたJAXAのX線天文衛星「ひとみ」では、「X=5をX=0にリセットしなかった」のと似たようなミスを犯してしまい、衛星が高速回転を始め、遠心力でバラバラになってしまった。実際の事故の背景は複雑だが、数字のリセットのミスで、280億円の天文衛星が観測開始前に空中分解したのだ。ソフトウェアの開発を担当していたNECは5億円の賠償金をJAXAに支払ったが、巨額の国民の血税が無駄になった残念な事故であった。
あるいは、2005年に新規上場したジェイコム株(現ライク社)をみずほ証券の担当者が「誤発注」し、407億円の損害が生じてしまった事件も記憶に新しい。本来なら「61万円 1株売り」という数字を入れるべきところ、「1円 61万株売り」と、数字を逆さに入力してしまったのだ。約1分半後に入力の間違いに気づいたトレーダーは、慌てて注文を取り消そうとしたが、なぜか東証のシステムが受け付けず、東証と直結されている別のシステムから取り消そうとしてもダメで、電話で東証と直接交渉したが、やはり取り消すことができず、ジェイコム株は急落した。大量の誤発注に気づいた他の証券会社や個人投資家が「この機に乗じて儲けてやろう」と動き始め、市場は大混乱に陥った。
もちろん、最初に数字を入れ違えたトレーダーも悪いが、単に数字を入れる順番を間違えただけだ。スマホの打ち間違いやメールの誤送信なんて、誰でも経験しているではないか。そういったヒューマンエラーが407億円の実害にまで発展したのは、そもそも、東証のプログラムに問題があったからだともいえる。みずほ証券は、まさにそう考え、東証に415億円の賠償を迫ったが、東証側が拒否したために、両者は最高裁まで争うこととなった。2015年に最高裁判決が確定し、最終的に東証が約107億円(プラス金利)をみずほ証券に支払うこととなった。賠償金額としては損害額の4分の1だが、プログラムのバグ等の不備の責任は重く、裁判所は、7対3の割合で東証の責任が重いと認定したのである。
プログラムのレベルでは、単なる数字の入れ間違いやリセットのし忘れにすぎない。だが、プログラムが、リアルな世界の探査機や証券取引とつながった瞬間、ささいなミスが巨額の損失や事故へとつながる。
読者のアタマの中では、
「核ミサイルの制御プログラムで同じようなミスが起きたらどうなるのか」
といったところまで想像が膨らんでいるかもしれない。そう、その場合、x=5をx=0とリセットしなかったために、何百万人の尊い人命が失われる可能性だってある。
今後、プログラムの塊のような人工知能やロボットが、どんどん人類社会に参入してくる。プログラムのバグや入力ミスやリセット忘れによって、巨額の損失や、人命が失われる事故をどうやって防げばいいのか。未来のプログラマーたちの肩にかかる責任の重さは増すばかりだ。
-
-
竹内薫
たけうちかおる サイエンス作家。1960年、東京生まれ。東京大学教養学部、同理学部を卒業、カナダ・マギル大で物理を専攻、理学博士に。『99・9%は仮説』『文系のための理数センス養成講座』『わが子をAIの奴隷にしないために』など著書多数。
この記事をシェアする
「AI時代を生き延びる、たったひとつの冴えたやり方」の最新記事
ランキング
MAIL MAGAZINE
とは
はじめまして。2026年7月1日よりウェブマガジン「考える人」の編集長をつとめることになりました、松本太郎と申します。いつもサイトにお立ち寄りいただき、ありがとうございます。
2002年7月4日、季刊誌「考える人」が創刊されました。
目次には当代随一の執筆陣がずらりと並び、B5判240ページの誌面の隅々から知の香りが立ちのぼってくるかのようでした。
当時、入社3か月の営業部員だった私は、見上げるような思いで手に取り、発売日には編集長の松家仁之さんと創刊のご挨拶のために書店にうかがいました。
まだ書店訪問にも慣れておらず、編集長ともほぼ初対面の中、次のお店の約束の時間に間に合うだろうかと時計ばかりが気になって、終始、そわそわしていました。そんな私に松家さんがやわらかな笑顔で接してくれたこと、そして、新雑誌の門出を祝うようなすっきりと晴れた一日だったことを覚えています。
あれから四半世紀が過ぎ、ウェブマガジンとして衣替えした今でも、創刊時に掲げられた「Plain living, high thinking(シンプルな暮らし、自分の頭で考える力)」という言葉は古びていません。AIに尋ねれば瞬時に答えが返ってくる時代だからこそ、それらしい言葉に飛びつくのではなく、自分の頭で考え、心の声に耳を澄ませることの大切さは増しているように感じます。
創刊号には、養老孟司さんのロングインタビューが掲載されています。養老さんはその中で、恩師である中井準之助先生の口癖だった「人の心がわかる心を教養という」という言葉を紹介しています。
読んだ瞬間に立ち止まり、さまざまな思いが湧き上がってくるような文章に、楽しみながら出会える場であり続けたいと思っています。
「考える人」編集長
松本太郎
著者プロフィール
-
- 竹内薫
-
たけうちかおる サイエンス作家。1960年、東京生まれ。東京大学教養学部、同理学部を卒業、カナダ・マギル大で物理を専攻、理学博士に。『99・9%は仮説』『文系のための理数センス養成講座』『わが子をAIの奴隷にしないために』など著書多数。
連載一覧

ランキング





ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号第6091713号)です。ABJマークを掲示しているサービスの一覧はこちら



