airheadの日記: memo: Happy Binary Day
と言われても、いまだに何をすればいいのかよくわかってない。 ...一応お供え物もしたし、とりあえずパリティ安全でも祈願しておくか。
----
そのお供え物というか、コメントに書いたワンライナー/ブックマークレット、アラビア数字の並びを10進数として評価し2進数にするならこんな感じか。面倒くさいので符号や小数点は無視する。
javascript: (function(){var i, n, w = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, true); while(n = w.nextNode()) n.nodeValue = n.nodeValue.replace(/\d+/g, function(m){return (m-0).toString(2)})})()
バレバレだったとは思うが一応書いておこう。最初からこう書きたかったのだが、replaceに関数を組み込む場合の書き方を思い出せず、眠たかったのでコメントでは強引に「文字全て」に仕様変更してしまっていた。「急にバイナリ・デーが来たので、足の内側で書けばよかったが、外側で書いてしまった」といったところか。違うか。
----
バイナリ・デーに便乗して、前から言いたかったことを。Bill GatesとPaul Allenの才覚を強調したいがためとはいえ、いちいちこんな書き方しなくてもいいでしょ。
エド・ロバーツにアルテアをどのように操作したのかを実演してもらった。
彼はまず、パネル前面に並ぶ0から15までのスイッチをパチパチと音をたてて上下させた。スイッチを上に倒せばON、下に倒せばOFFである。ONが「1」を示し、OFFが「0」を示す。
ロバーツは、最初、スイッチを「上・上・下・下・下・下・上・上」と倒した。つまり、「11000011」である。その状態を示したのが図1である。そして、EXAMINEというスイッチをONにした。その後、「00000000」とスイッチを揃えては、EXAMINEをON、という操作を二回繰り返してから、RUNのスイッチをONにした。
すると、パネル上部に並ぶA0からA15までのLEDがチラチラと点滅を始めた。そしてロバーツは「これで、プログラムがコンピューターの中で正確に動作し始めた。『JUMP TO ZERO』というプログラムです」と自慢気に言うのである。
私たちには、なぜこれがエド・ロバーツが言うように、天にも昇る心地がし、SEXよりも快感があるものなのかまったく理解できなかった。
(0000番地からの3バイトのコード「JMP 0000」がどのように処理されるかを、数ページにわたって解説)
横一列にLEDの部分がチラチラと点滅する姿。これこそが、プログラムを正しく入力できたことを示しているのだ。アルテアの使い手は、自分の命令でコンピューターが正確に反応したことに天にも昇る心地がするというのである。エド・ロバーツがSEXよりも快感があると言い切った正体は、たったこれだけのことであった。
(余談としてCPUによって命令セットが異なるという話を挿入)
さて、エド・ロバーツが走らせてくれた、極めて原始的なプログラム「JUMP TO ZERO」(メモリーの0番地へ行きデータを読みなさい)であった。くどいようだが、もう一度、おさらいする。
スイッチング操作でコンピューターに入力するために、JMPに対応する「0」と「1」の羅列を探し出し、メモリーに記憶させる。次に、0番地へ、という意味で、0を入力する。そして、このプログラムを実行するために、RUNというスイッチを倒す。するとCPUは、0番地へ命令を読みに行き、命令を読み終わると、命令どおり、0番地へ命令を読みに行く、するとそこに同じ命令がある。結局、同じ動作を永遠に繰り返し、LEDは光を非常に速く明滅させる。これを見てアルテアのユーザーは「やったあ、ついに俺のコンピューターが俺の命令で動いた!」と狂喜乱舞したのだ。たったこれだけのことにマニアたちは大枚をはたいたのである。
(『新・電子立国 1 ソフトウェア帝国の誕生』 相田洋 NHK取材班 大墻敦 より / 段落間の丸括弧と強調は引用者)
ごくわずかのものであっても予備知識のない者への説明は難しく、下手をすれば言い換えばかりになって結構な分量を費やしてしまう――これは、相田自身が実証している。だからEd Robertsは3バイトのコードという最小限に留めたのに、「セックスよりも」がよほどツボに入ったか。邪推になるだろうが、「ソフトがなければただの箱」という言い回しに潜む態度と共通するものがあるように感じる。題材が「日本のものづくり」だとそんな態度を取らないのではないか。
----
(以下11/12 00:30追記)...なるほど、そういうことか(Binary 2008より、鴨志田さんの出題とその答えを読んで / たいした内容ではないが答えを含んでいるので続きは別エントリに)。
----
しまった、今頃になって「ビット繁盛パリティ安全」のほうが語呂がいいような気がしてきた。次はそれで。
memo: Happy Binary Day More ログイン