レポート | ・フォートランの父、ジョン・バッカス氏死去 | ![]() |
![]() |
−フォートランの父、ジョン・バッカス氏死去−
|
||||
大きな見出しではないでしたが、『プログラムを書くのが嫌いだったのでフォートランを発明した。』
―― そう語っていたジョン・バッカス氏が、2007年3月17日、米国オレゴン州で亡くなったという記事が新聞に載りました。 バッカス氏は、1950年代に、プログラミング言語『フォートラン』(FORTRAN)を開発し、人々がコンピュータを動かす方法を変え、近代ソフトウェアの道を開いた人でした。82歳でした。フォートラン、それは団塊の世代の技術者にとっては、懐かしい響きのある用語です。 コンピュータにある処理をさせるには、その処理の手順を一つ一つ記述した指示書を読み込ませて実行させる必要があります。手順を記述した指示書のことをプログラムといい、手順を記述することをプログラミングといいます。通常、私たちはすでにプログラミングされた市販のソフトウェアを使うので、プログラミングのことを考える必要はありませんが、独自の処理をさせるソフトウェアを作ったり、例えばExcelなどの表計算の処理をさらに自動化して便利にする場合(このことをカスタマイズといいます)などには、プログラミングが必要になります。 日本人には日本語、イギリス人には英語、ロシア人にはロシア語という母国語があるように、コンピュータには『機械語』という母国語があります。機械語は、1と0のみの組み合わせで記述される言語であり、電圧がある値より高い状態を1に、低い状態を0に(あるいは、その逆に)対応させています。 従って、コンピュータに読み込ませるプログラムは、1と0の組み合わせで書かれていなければなりません。例えば、ある商品を一度に100個以上購入すれば定価の1割5分引きで売り、購入数が100個未満の場合には定価で売るときの代金を計算するプログラムを考えてみましょう。 機械語でプログラミングすると、1と0の組み合わせですから、図1のようになるでしょう。何が何だかわかりませんね(もちろん、機械語を読み書きできる人がいないわけではありません)。 01101011000101001011011000010101101 10110010101110001010100100101001000 11001100110100010100101010111101010 00100010110111000101010110101000101 11010111010011101000110101001010011 10101010010100101000101010010100001 01010100010110100101100100010100010 11101010101001010001011101001001101 00010101011010100010100100010110111 10011001101000101001010101111010100 図1 機械語で書かれたプログラム(単なるイメージです) 1924年、米国デラウェア州ウィルミントンに生まれたバッカス氏は、名門バージニア大学に進学しますが、わずか半年で退学し陸軍に招集され医学を学びます。しかし、今度は、無線工学の方が魅力的だと感じ、医学から遠のいてしまいます。 その後、コロンビア大学で数学を修め、卒業直前にマンハッタンにあるIBMのオフィスを見学し、1万3000本の真空管を使った同社製の計算機に出会います。この計算機を開発した1人、レックス・シーバー氏は、自作の簡単なテストをして、彼をその場で採用してくれたといいます。 IBMに入社して、バッカス氏が携わった仕事が、月の位置を計算するプログラムの作成でした。しかし、機械語でプログラムを書くのがどうも好きになれません。そこで、プログラムを簡単に書けるシステムを考えたのです。それがフォートランでした。上述の代金を計算するプログラムをフォートランで書くと図2のようになります。 READ(*,*)TEIKA,KOSU IF(KOSU.GE.100)THEN KINGAKU=TEIKA*0.85*KOSU ELSE KINGAKU=TEIKA*KOSU ENDIF WRITE(*,*)KINGAKU 図2 フォートラン(FORTRAN)で書かれたプログラム 図2で、READは、読むという英単語ですから、定価(TEIKA)と購入個数(KOSU)の値をキーボードから読み取ります。WRITEは、計算した金額の値(KINGAKU)をディスプレイに書き出します。IF〜THEN・・・ELSE・・・ ENDIF は、『もし〜であれば・・・で、さもなければ・・・である』という構文です。また、GEは、大きいか、もしくは等しい(Greater than or Equalto)という比較演算子です。なお、”*”は、掛け算をする演算子です。 このように、フォートラン(FORTRAN)は、英単語あるいはそれに近い単語で記述する言語であり、機械語に比較して格段にわかりやすくなります。人間が理解し易いということで、このようなプログラム言語を高級言語といいます。 しかし、フォートランで書かれたプログラムは、コンピュータには理解できないので、機械語のプログラムに翻訳してやる必要があります。この翻訳のことを、コンパイルといいます。人間がフォートランで書いたプログラム(図2)を、機械語のプログラム(図1)にコンパイルして、それを読み込ませてコンピュータを動かします。 本メールマガジンの著者が初めてコンピュータに出会ったのは、今から35年前の昭和47年(1972年)のことでした。工学部機械科の卒業研究で、飛行機の車輪のような円環(リング)が衝撃を受けたときの挙動をコンピュータで計算することになったのです。 そのとき、先ず習得しなければならなかったのがフォートランでした。当時、大学の計算機センターにあったのは、沖電気製の汎用コンピュータOKITAC(オキタック)でした。フォートランで書いたプログラムを、テープパンチャに打ち込み、紙テープに穴をあけコード化したものを夕方、計算機センターの受付に預けます。翌朝、計算結果を取りにいきますが、エラーがあるとテープを打ち直してその夕方また預けるというふうにして、今だったら3〜4千円の関数電卓で手計算できるような計算に当時は1〜2日を費やしたものでした。 フォートランは、現在でも科学技術計算などで使われていますが、1980年代以降は、パソコンの普及とともにもっぱら、フォートランの文法を基本にしたプログラム言語である『ベーシック』(BASIC)や、フォートランとは体系の異なる『C言語』などが広く使われるようになりました。 晩年、『自分の業績の多くが、怠け心から生まれた』と回想していたフォートランの父、ジョン・バッカス氏にまつわるコンピュータ言語についての話でした。 バッカス氏のご冥福をお祈り致します。 |
||||
|
||||
2007.03.28 | ||||
|
||||
− Copyright(C) WaShimo AllRightsReserved.− |