2017年02月08日の日記です


ボブ・バーマー 誕生日(1920)  2017-02-08 10:05:55  コンピュータ 今日は何の日

今日はロバート・ウィリアム・バーマーの誕生日(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年しかない。




同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

関連ページ

凄腕プログラマ【日記 18/06/06】

村井純 誕生日(1955)【日記 19/03/29】

別年同日の日記

07年 Roomba を修理

10年 かわいくて おっきいの!

10年 ヒーローごっこ

15年 はじめてIKEA行った


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

14000

-- follow --




- Reverse Link -