July 2011

July 20 Wednesday 2011

マイコン世代の思想

私は結構『For Beginners』シリーズが好きで何冊か持っています。で、その中に翻訳ではなく日本オリジナルで作られたらしい『マイコン』というのがあります。1983年の出版なので今からざっと28年前ですね。

かつて「マイコン」という言葉は今で言う「パソコン」のことだったと記憶しているのですが、昨今では所謂「ワンボードマイコン」のことを「マイコン」と呼んで「パソコン」と区別しているようです。近年、学研の「大人の科学」シリーズで取り上げられたり、イタリア製のArduinoなどが普及して一般の人でも扱うことが増えたためなのでしょうか。よくわかりませんが。

話は戻って、この『マイコン』という本で扱っている内容なんですが、かなり広い分野に渡っていて「マイコン」「パソコン」に限定されていません。エントロピーの話から始まって半導体やフリップフロップ回路を使ったメモリの仕組み、アルゴリズム云々。情報学から工学、社会学にまで渡ってユニークな内容になっています。そのため「パソコン本」にありがちな内容の「陳腐化」はあまり見られません。今読んでも面白いです。ただ良い点と悪い点がかなり混在していてあまり手放しでお勧めできる感じでもなかったりするのも事実です。

悪い方をいうと「イラストの8割が本文と関係ないシモネタ」「大事なところで致命的な誤植(?)を多発」というあたりでしょうか。前者についてはイラスト担当の方が内容を全く理解できなかったか興味を持てなかったかしたための苦肉の策かな?とか邪推しています。実際の事情はわかりませんけどね。かなり異様です。後者の駄目ポイントについては後でちょっと詳しく言及するとして、良い点について紹介してみたいと思います。ここ数年、特に311以降の色々なひどいことを見るにつけ、この本の記述が思い出されたので。

科学者=官僚だなんて、子どものとき伝記を読み過ぎたキミはいくらいっても信じないだろう。だが、名の通った科学者ほどそうなのだが、彼の言動は、なぜか不思議にお役人の言動に酷似してくる。これは彼が公立・民間いずれの機関に所属しようと同じことだ。(略)ちょっと考えただけでも、そのセクショナリズム、非専門家に対する権威主義的恫喝、その反対にオカミに弱いこと、思考の柔軟性のなさ、非ラジカルさ、人間味のないこと、点数かせぎ、小金にきたないこと、会議好きetc、……と思い当たることがあるはずである。(p.152)

なぜ「マイコン」の本でこんな話が展開されているのか不思議に思うかもしれませんが、これは「マイコン」というか「コンピュータ」やそれを使った研究が、どういう目的で悪用されてしまうか、ということについて論じている中の一節です。「非専門家に対する権威主義的恫喝」に利用されてしまうということを警告しています。昨今この手の悪用の中で目に見えてひどいのは「統計」に関するものだと私は思っています。この本の中では「統計」については何も言及していませんが。

もう少し引用してみましょう。科学者が普通の官僚よりも悪質であることについて言及しています。

科学者は、少なくともシロウトには、論証なしの結論を押しつけてくる。しかも最近は、「以上のことは、X時間のコンピュータ解析の結果得られた結論であります」としめくくるであろう。(略)官僚の天下りは、彼が退官前に行使していた行政権力の残光のために可能だ。しかし、この場合には少なくとも現在は彼が公的な権限を何も持っていないことが、誰の目にも明らかだ。一方、科学官僚の実質的引退は、じつは一般の人々にはよく視えない。非科学者には、彼の発言の何処までが、彼の仲間である他の官僚によって検証可能な科学的内容なのか、どこから先が政治的意図をもった独断なのか、判然としない。(略)民間人は、数学者は自分たちよりもっとこの世界の論理関係が透明に視えているのではなかろうか、素粒子物理学者ともなると、科学全体が見透せるのではないか。生物学者は……などと考えてしまう。じっさいには、物理屋は彼の方法の及ばない所で、やたらと「機械的」唯物論をふりまくし、生物学から人間を提えれば、おおかた、最も保守的な思想が出てくるにちがいない。(pp.153-154)

この引用部分の意見には私自身の経験などからいっても全面的に賛成できます(「提えれば」は「捉えれば」の誤植じゃないか?とかは思いますけど:笑?)。著名になった科学者(「科」をとって学者一般で良いと思うのですが)の多くは実はすでにモノを考える人間としては死んでいます。中にはちゃんと生きている人もいますが、大部分はゾンビです。そのゾンビが勝手なことをフガフガいっているだけなのに多くの一般大衆はそれが何か専門的な知見に裏付けされたすぐれた意見だと思わされてしまいます。でも彼らは実はゾンビ(つまり脳はほとんど機能していない)ですから、長年研究して来たピンポイントの内容を除けば、まともな知力のある学者ではない人よりきちんとした意見を述べている可能性は極めて低いんですよね。

原発事故に際してテレビで解説していた自称専門家の多くは、実は「原発」の専門家ではなく関連分野の専門家だったそうで、だからこそのデタラメ解説だったようです。

で、『マイコン』では彼ら科学者=官僚は反論や追及を避けるために「擬人化したコンピュータ」を盾にしようとするだろうと予測しています。

コンピュータの機構を知れば、それがプログラミングという人間の側の司令なしには、決して走らないことは自明である。にもかかわらず、「官僚」はコンピュータを擬人化するための共同戦線を張る。彼らがいうことは一致している。つまり、「機械が考え、行動する」というわけだ。「官僚」はすべてコンピュータの背後にかくれて、銃弾を避けたがっている。そんなわけだから、彼らにとって、コンピュータの操作卓に座るような人間---この人たちは、現在、身分も安定せず、かなりの重労働を強いられているのだが---は、幻想保持のため、どうしても仲間うちに留めておきたい。(p.156)

確かに「コンピュータが...」とかを理由にして追及を避けようとする言動を私も見たことがあります。さすがにパソコンがここまで普及した現代ではもうちょっと工夫した言い方をするようですけど。専門家がコンピュータを使って解析した結果だとか統計学によればどーのこーのとか。

実際に「これは統計学による客観的なナニソレだから...(反論の余地などないはずだ)」みたいなことを言われた経験があります。追及を避けて相手を黙らせる切り札くらいに思っているんですね。相手にも統計学の知識があって、同じ分析を使える能力があるなんて全く想定していない。で、(彼らにとって)予想外の反論を喰らわせると幼児退行かと思うような菅直人式反応を返してくるので更にウンザリさせられます。

フリーの統計処理環境「R」がある現代では統計データの数値計算なんて(必要な知識さえあれば)誰でもできることを知らない輩がまだまだたくさんいるのでしょう。かつて連中が相手を黙らすために用いていた「文句があるなら追試でもやってみれば?できないだろうけどね、ププ」というのは通用しにくくなっています。科学者=官僚の用いる権威主義的恫喝を覆す機会は以前より得やすくなっていると考えてよさそうです。

ただそうはいっても結局肝心の裁判所の裁判官だとか学界のおエライさんといった「審判」役がまるで統計がわからん(というか基本的に話が通らない、両者とも「官僚=科学者」ですからね)ので、対抗手段は極めて限られている状況にかわりはないということでしょうか。残念ですけど。マスコミや一般大衆の皆々様に期待するわけにもいきませんしね。

『マイコン』では上記引用箇所に続けて「キミはマイコンのキーボードを、真の意味で自由に支配することができるだろうか」と問うています。科学者=官僚の手練手管に絡めとられ、弾圧支配のコマとして利用されることを避けきれるのか?という問いです。

日本最初の「マイコン」であるTK-80を作ったNECのパソコン部門は中国の連想集団(レノボ)に買われてしまったそうですね。所謂「PC」を作ったIBMのパソコン部門もしばらく前にレノボに買われています。もともとIBMにとってPCは鬼子だったようですけど。それをいったらTK-80も似たようなものかも。

なんとなくプロメテウスの神話を思い起こしてしまいます。極少人数だったPC開発チームのリーダーは飛行機事故で報われぬままの非業の死を遂げたそうですし。

あと生き残っている「パソコン」の始祖からの系統は Apple 社のものですが、iCloud などといって中央集権的というか、ソフトウエアの私有財産権を踏みにじるようなプロジェクトを実行しようとしているように見えるのですが、これは私の目の錯覚なんでしょうか。iTools は延々改悪され続け、ついにiDisk まで廃止されるようなんですけど、別に誰も騒いでませんね。やっぱり私が何か勘違いをしているのでしょうか。そうだといいけど。

『マイコン』の誤植

前述した欠点についてです。イラストがシモネタでも見なければ良いだけですし、見ても気分を害する程度ですが「誤植(?)」の方は結構深刻です。

具体例をあげますと、p.40 に出ている2進数、10進数、16進数の関係について述べた部分で「10進数 27=2進数 00011011 =16進数 13」と書いているのですよ。御丁寧に2進数の部分を左4桁と右4桁に分けてそれぞれを16進数に直して組み合わせると簡単に16進数に換算できるということまで書いてあって、そこでも「0001」を「1」、「1011」を「3」としています。

このあたりの換算について分かっている人が読めば10進数の27は16進数では「16の1乗かける1たす16の0乗かける11つまりB」なので「1B」と計算できます。2進数の「1011」も「2の3乗かける1たす2の2乗かける0たす2の1乗かける1たす2の0乗かける1」で「11」となり16進数では「0123456789ABCDEF」と数えますから「B」だとすぐわかります。なんでそれが「3」になるのか...といえば書いてる人か印刷屋さんがわかってなくて「B」に似た数字で「3」にしたのかな...とこれまた邪推する他ありません。

また p.116 では JPZ というニーモニックの説明をする際の条件についての部分が、そのあと例としてあげたプログラムの中で期待される動作と真逆の内容になっていました。

JPZ n ...アキュムレータ(ACC)の値が0のときは、プログラムカウンタに値nを入れ、0でないときは、プログラムカウンタ(PC)を1つ進める。

一応原文ママです。二度目に出て来た用語の後ろに略称を入れてるのもなんでかわかりませんけど。プログラムカウンタというのはプログラムの実行順番号みたいなものだと理解してください。アキュムレータは...邦訳すると「累算器」というようですが、後述するTK-80なんかでは単にAレジスタと呼んでいて他と区別していないようです。なんでしょうね、計算するときにとりあえず値を入れておく場所みたいなものかな。正確じゃないかもしれませんが。

サンプルプログラムは1から10までの数字を足して和を求めるというものです。プログラム前半は、12番地に入っている値(初期値0)を取り出してACC上で11番地に入っている値(初期値1)を足し、その結果を12番地にコピーしてから13番地に入っている値(初期値0)をACCで更に加えて13番地にコピーする、となっています。この過程がループすると12番地には11番地に入っている1を毎回加えていくことになるので値は 0、1、2、3、4、5、6、7、8、9、10と変化していきます。そして13番地にはこれらの数値を加えていった総和が順に代入されていくことがわかります。

プログラムの後半ではまず10番地の値(初期値10)をACCに取り出して11番地の値を引いてから10番地にコピーします。11番地に入っている値は1でこれは変わりませんから、要は10から順番に1ずつ減らして行くカウンターなんですね。

で、問題のJPZはここで使われます。JPZ 0と書いてあって、事前の説明通りだと ACCが0のときはプログラムの先頭(PC0)に戻り、そうでなければ次の命令を実行することになります。次の命令というのはHALT、つまり終了です。

直前の処理でACCは10から1を引いた9のままで0ではありませんから、これだとループしないでそのまま終ってしまいます。「0でないときジャンプ」して「0のとき終了」したいのですから、まるで逆ですね。

長々書いてしまいましたが、16進数のことやアセンブラでのプログラムについても私は今これがかかれた時代より遥か未来にいますから「ぷ、激しい誤植ワロタ」といってられますが、他に参考資料もない時代にこれを読んで理解しようと思ってた人にとってはすごく辛いことになってたんじゃないかと思います。なんだかな。

アセンブラ

私が最初にお小遣いで買った「マイコン/パソコン」は Sinclair ZX81 でした。

>>

当時は三省堂書店で売ってました。メモリが1kBだったりキーボードの各キーにBASICで使うコマンドが割り振られていたりと、ちょっとアレな感じのものでしたが、基本を学ぶには良かったと思います。参考図書は『よくわかる マイコンの使い方遊び方』一冊で、繰り返し読んでました。

この本にはゲームのサンプルプログラムもありましたが、それは当時の少年が想起するゲームとはまるで違う「ライフゲーム」や「囚人のジレンマ」といったものでした。他にも「ヒストグラム」の作り方など今から思えば面白くて役に立つ基礎だけど子どもは喜ばないよな...という内容です。でも子どものうちにこういうものに慣れ親しんでいたのは良かったかな、とは思っています。

その後はファミコンの誘惑からはなんとか逃れたものの、結局MSXをお年玉で買ってしまいゲームカセットを突っ込んで遊ぶ堕落の道に走りました。根性もなかったので Login誌 に時折掲載されていたマシン語のゲームプログラムを自分で入力することもなく、以後スカリー時代のMacを買うまで計算機からは離れます。

ただ後々まで「マシン語」というのが気になっていました。確か ZX81 用のマシン語の本を買ってあったはずなのですが、なぜかこの本だけは実家の地下を調べても見当たらないんですよね。おそらく『ハンドヘルドコンピュータシンクレアZX81の活用法』だったんじゃないかと思うのですが。

ちなみにZX81でマシン語を覚えた...という人に意外な有名人もいるようです。

>> Aphex TwinとZX81とマシン語

「おいらが11だったとき、ZX81でサウンドを創りだすプログラムを書いて、それでコンテストの賞金50ポンドを勝ち取ったんだ。普通はZX81でサウンドを創ることは不可能だけど、おいらはマシン語をいじくりまわして、TVの信号の音の調子を変えるいくつかのコードを創ったんだよ。このコードはボリュームをアップして調整することで、本当に奇妙なノイズを生み出すことができたんだ」
(出典:The Face John O'Connell, The Face, October Issue 2001)

こんな武勇伝があったとは知らんかった...。さすがねこぢるさんが愛してやまないだけのことはある。「マシン語」を使えばこんな風にコンピュータに限界を越えた得体の知れない何かをさせることができる...という期待があったので、できれば理解したいな、という思いはずっと残っていたんです。ただ「マシン語」を人間がプログラムできる環境としては8ビットCPU(命令セットの最大値が256)が限界だと言われているので、現代のパソコンで使うことは不可能なようなんです。

そんな感じでもんもんとしていましたがリベンジのチャンスが意外にも2000年頃にきます。日本における原初の「パソコン/マイコン」であるTK-80のシミュレータが出たんです。『復活!TK-80』がそれです。買ったら安心して全然プログラムを組んだりはしてないんですけどね(←!)。

ちなみにTK-80の実物はこんな感じ↓です。

>> TK-80 Demo

アセンブラとかハンドアセンブルとかいう太古の技術について(相対的)ヤング相手に解説してます。かなりわかりやすいのではないかと。

その後は学研の『大人の科学 vol.24』についてくる4ビットマイコン(正体は電子ブロックの部品の単体売り)などというのも出ました。大昔のものの復刻なのでプログラムは「マシン語」での入力になります。一方8ビットの方(『大人の科学 vol.27』)の正体は Arduino クローンで現代のものなので、パソコンとUSB接続してC言語でのプログラム入力なのだとか。いずれにせよ電子データの処理だけでなく現実に機械を制御するためのプログラミング、というところに結構ワクワクするのですが、まあ、そんな場合でもないので(涙)。

でも昔から微妙な夢として「太陽電池でバッテリーを充電する機能がある」「バッテリーが減ると光のある方を感知して移動し日光浴等々で再充電する」「バッテリーが十分にあるときは音に反応して音がする方向に向かって移動するか、適当な条件にしたがってひたすらウロウロする」というような仕様のロボットとか作ってみたいというのがあるんですけど、ちょっと知識があれば案外簡単に作れそうな気がしてはいます。

Comments | Corpus


Copyright(c)2006-2012 ccoe@mac.com All rights reserved.