今日はロバート・ウィリアム・バーマーの誕生日(1920)
愛称は「ボブ」。Robert は一般に Bob になります。
#Rob なのだけど、R の音は発音しにくいので、変化させて B になる。
さて、ボブは ASCII の父として知られています。
以前、世界で最初に { } (弓括弧)を使えたマシンは何だろう、という疑問を調べたことがありあす。
今は、非常に多くのコンピューター言語が、{ } を使います。
これらの最初は BCPL という言語だ、ということになっています。
だけど、昔のマシンでは { } は使えませんでした。
BCPL は { } を使ったというけど、その時代のマシンでなぜ { } が使えたのか? という謎を追ったのでした。
実は、この過程で昔のコンピューターで使える文字セットに興味を持ち、言語との関係や変遷をまとめたのだけど、まだ記事にしていません。
いつか記事にしたいのだけど、タイプライターと文字セットと言語と…と、密接な話題が入り組んで整理しにくいの。
それはさておき、昔のコンピューターにはタイプライターが接続されていました。
そして、タイプライターは活字を持たなくてはならない都合上、それほど多くの文字を扱えませんでした。
これらのタイプライターは「テレタイプ」と言って、操作を紙テープに残せました。
このため、「文字コード」も持っているのですが、各社でバラバラ…いや、場合によっては同じ会社でも互換性がありません。
そこで、統一コードが作られます。これが ASCII です。
当時のタイプライターの紙テープは、5~6bit 記録でした。
しかし ASCII は 7bit として制定され、今までよりも多くの文字を使えるようになったのです。
そして、ボブ・バーマーは ASCII の定義委員の一人でした。
彼は { } や \ (バックスラッシュ)、制御コードとしての「ESC」など、多数の文字を入れるよう提案を行っています。
これらの文字は、単に「入れたいから入れよう」というような話ではなく、よく考えて決められています。
当時は、ALGOL が「最良の言語」でした。そして、 ALGOL では、論理演算に ∧ ∨ という数学記号を使います。
だから「それらの文字を入れるべきだ」という意見も出ていました。
しかし、ボブは、すでに入っている / (スラッシュ)に \ を組み合わせれば、論理演算記号を表現できる、と提案したのです。
一部の言語しか使わない文字ではなく、より普遍的に使える文字を入れる。
長く使われる「標準セット」には大切な考え方でした。
そして、ESC は特に重要な提案でした。
ASCII では、「文字コード」を定めようとしていましたが、それは各社のタイプライターの差がなくなってしまうことでもありました。
タイプライターメーカーとしては、新機能を搭載しづらい…業界の進歩が止まってしまうことになります。
ASCII を決定したとしても、いつか新機能を搭載したがったメーカーが「新しい文字コード」を使い始めるかもしれません。
それでは標準コードの役に立たないのです。
ESC は、この問題を解決する素晴らしいアイディアでした。
ESC 文字コードが送られてくると、タイプライタは、ASCII 文字コードから「ESCAPE」…脱出できます。
ESC に続いて送られてきたデータを自由に解釈し、タイプライターメーカー独自の機能を追加できるのです。
ビデオ端末が登場すると、この機能により自由な位置に「カーソル」を動かしたり、文字に色を付けたりできるようになりました。
これによって、初期のテレビゲームや、ワープロなど…「グラフィカルな」ソフトウェアが作られ始めます。
もし ESC が無かったら、端末は文字しか出せないままで、コンピューターの利用用途はずっと限られていたでしょう。
このことから、ボブは「ASCII の父」と呼ばれるのです。
彼は 2004年に亡くなっていますが、彼の作っていた WEB ページはそのまま保持されています。
そのページから、写真を引用させてもらいます。
彼の乗っていた車のナンバーは「ASCII」でした。
#2018.10.15 追記
さすがにページが消えたようです。
webarchive に、2018.5.11 時点のアーカイブが残っていましたので、リンク先を変えました。
ナンバープレートも同様です。
ボブは、IBM 、ハネウェル、UNIVAC など、コンピューター黎明期の大メーカーを転々としながら働いています。
ASCII コードの定義委員をやっていたのも、IBM の代表の一人として。
IBM が FORTRAN (1956) を発表した後、ボブは彼自身のプログラム言語を考案しています。
FORTRAN は科学者向けの「数式 ( FORmula) を変換する (TRANslate) 」言語でした。
これに対し、仕事 (COMmercial) でつかえる言語、COMTRAN (1957) を作ったのです。
COMTRAN は普及しませんでしたが、これをベースとして COBOL (1959) が作成され、広く使われるようになりました。
この当時、メモリは貴重でした。
そのため、日付などを入れる際に、1957 年を 57 というように表記するのも当たり前でした。
しかし、これは良いやり方ではない、とボブは気づきました。
このままでは、上の桁が変化する 2000 年には、多くのソフトが誤動作するに違いない。
この指摘を行ったのは、1971 年でした。
2000年問題の危険性の指摘でしたが、当時としては「30年も先に、今作っているプログラムが使われているわけがない」と誰も相手にしなかったようです。
実際には、古いシステムは「誰も完全な動作を把握できていない」ために更新されることなく、使われ続けました。
そして、彼の指摘通り、1990年代後半に社会的な問題となるのです。
彼はこのときにも、2000年問題の対処を再び考えています。
すでにソースコードが失われ、実行バイナリしかないソフトに対してパッチを当て、「50以下は +100 してから比較することで、年の順序を間違えないようにする」というような解決方法でした。
…実際に、これで延命された古いシステムが多数あります。
2050 年に問題が起きるかもしれません。
#さすがにそれまでにはシステムが更新されている…と思いたいが、彼が指摘した 30年後に、実際に 2000年問題は起きたのだ。
2050年も、あと 33年しかない。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |