読者です 読者をやめる 読者になる 読者になる

相対性理論を学びたい人のために

まだ一度も相対性理論を勉強したことのない人は、何か一冊相対性理論の本を読みかじってみて、なぜこんなことが?という、疑問を持ってからこのブログに来てください。

SONY許せぬと書きたかったが4

コンピューター 今日の科学

 現在2015年3月24日13時32分である。

 私は既に、この題名で、3つの投稿をした。


SONY許せぬと書きたかったが


SONY許せぬと書きたかったが2


SONY許せぬと書きたかったが3


 今日は、4回目である。

 今回は、この一連の投稿の少し先の方をカバーしよう。

 そもそも、この一連の投稿は、アセンブリ言語というものを、多くの人に知ってもらい、そのアセンブラというものの、敷居を下げることにあった。

 アセンブラでプログラムを組むのが、どういうとき、役に立つのか、というのは、以下のページにシステムエンジニアが書いている。


アセンブリについて


 これを読んで、アセンブラなんて、必要ない、と思ってしまったとしたら、諸君はコンピューターというものが、分かっていない。

 アセンブリ言語で、プログラムを書くことの強みや、そのほとんどオールマイティーな武装、どんな言語で書かれたプログラムでも解析できてしまう万能さ、を知ってみなければ、コンピューターを完全に理解できないのである。

 しかし、やっぱりアセンブラまたはアセンブリ言語を知ってみなければ、そのすごさは分からない。

 そこで、現代の諸君が、どうやったら、アセンブラを理解できるのか、1つの道筋を示そう。

 私が、1998年7月に、その後8年半勤めることになる会社に入ったとき、上司だった人から、『Z-80の使い方』という本を渡されて、

「勉強してきて。」

と言われた。

 この本である。

新版 図解Z‐80の使い方

新版 図解Z‐80の使い方

 それは、工業高校などへ行っている人や、工学部の電気工学科などを卒業している人には、簡単に分かる本だったのかも知れないが、私には、歯が立たなかった。

 だが、上司に、質問したくても、何を質問したらいいのか分からない。

 小学校の頃から、分からないことがあったら、

「ぜーんぜん、分かりません。」

と質問してきた人なら、この場合も、それを実行したかも知れない。

 だが、私は、質問するということに、慣れていない。

 以前、どこかのブログで、『ワープする宇宙』のリサ・ランドールさんは、先生のジョージアイから、

「出来るようになりたかったら、どんどん質問しなさい。」

と言われて、積極的に質問するようになり、大成したのだ、と読んだことがあったが、一流の物理学者になりたいのなら、それでも良いが、私はそれで満足しない人間なのだ。

ワープする宇宙―5次元時空の謎を解く

ワープする宇宙―5次元時空の謎を解く

 質問できないとなったら、やるべきことはただ1つ、池袋のジュンク堂書店へ行き、私のレヴェルにあった本を探した。

 こういう時、どうやって探すか、といったら、絨毯爆撃をするのだ。

 手際よく探そうなんて思ってはいけない。

 本屋さんの本を、片っ端から開いていくのだ。

 そして、自分の理解できる本を見つけるまで、続けるのだ。

 私が大学2回生のとき、数学で正しいとはどういうことか分からなくなったとき、大学の図書館で、ブルバキを初めとして、片っ端から本を開いていき、大芝猛著『数学基礎概説』に出会ったときの方法だった。

数学基礎概説 (共立数学講座)

数学基礎概説 (共立数学講座)

 今回、私にとって、手掛かりはほとんどなかったが、次の本だけが、私に、最初の10ページほどが読めることが分かった。

はじめて読むマシン語―ほんとうのコンピュータと出逢うために

はじめて読むマシン語―ほんとうのコンピュータと出逢うために

 これを買ってきたとき、京都から負け犬のように帰ってきたと私を評価していた弟は、

「英語も分かってないのに、マシン語かよ。」

と嘲笑った。

 だが、私は、この本を読めば、きっとマシン語が分かると、自信があった。

 この本を私が読めたのには、理由があった。

 私は、小学校3年生の時から、PC-8001のN-BASICを触ったことがあり、そのゲームをやるとき、マシン語の16進数のプログラムをロードしたこともあり、また、インベーダーゲームをやりたくて、本に3ページにわたって書いてあった、16進数の意味不明の長いプログラムを、手でキーボードから打ち込んだこともあったのだ。

 その経験のお陰で、この本を読むとき、実際にパソコンで実行しなくても、

「長いコードが、表示されますね。」

というのが、実感できたのだ。

 私は、1月かけて、その本を読み終えると、続編に取り掛かった。

はじめて読むアセンブラ―ソフトウェアツールの原点を探る (アスキーブックス)

はじめて読むアセンブラ―ソフトウェアツールの原点を探る (アスキーブックス)

 そして、2ヶ月後、私は、『Z-80の使い方』の最初の章を読めるようになった。

 これで、アセンブラの話は終わりだろうと、諸君は思うだろう。

 だが、勉強というものは、そんなに甘いものではないのだ。

 『Z-80の使い方』を読み終わっても、私は、マシン語のプログラムを組めるようにならなかった。

 なぜだか分からなかった。

「どうしても、コンピューターのことが分かりません。実際にコンピューターを作ってみなきゃ、分からないんでしょうかねえ。」

と、上司に相談したこともあった。

 だが、上司は、

「コンピューターを作るってことは、キーボードのチャタリングなどのことも考えなくてはならなくなるから、そんなに気安く理解できるものではないんだよ。」

と応えてきたのだった。

 別な上司に、

マシン語の勉強をするには、どういう風にやればいいんでしょうかねえ。」

と、質問したこともあった。

 その上司は、

「だったら、C言語を勉強するといいよ。」

と言った。だが、なぜC言語を勉強するといいのか教えてくれなかった。

 私は、C言語の勉強も始めたが、プログラムを組めるほどにはならなかった。

 結局、私は、その会社で、金属加工などをやっていた。

 だが、加工の基本はやすりがけなのである。ところが、私は、金属を切断したときの、

『バリがでている。』

という状態を、指の感触で感じ取ることが出来ず、この会社に居場所はないな、と思っていた。私には、数学と物理学しかないと。


 そして、7年ほど経ったある日、私は、会社の本棚で、



Z80ファミリ・ハンドブック―Z80CPU・PIO・CTC・DMA・SIOの使い方のすべて

Z80ファミリ・ハンドブック―Z80CPU・PIO・CTC・DMA・SIOの使い方のすべて


という2冊の本を見つけた。そして、この本を読んで初めて、私は、なぜ上司達が、アセンブリ言語のプログラムを組めるのか、分かった。

 その2冊の本には、色々な計算に使うためのサブルーチンがたくさん載っていて、しかも、そのサブルーチンのプログラムには、至る所に誤植を修正する書き込みがあったのだ。

「これを使っているから、上司達は、プログラムが組めるのだ。」

 私は、その会社の秘密を知ったようで、ある意味嬉しかった。


 だが、私は、エンジニアになる気はなかった。

 それで、8年半後、

「私は、数学者としては一流、物理学者としては超一流ですが、技術者としては五流です。この会社には居たくありません。」

と社長に書いて、会社を辞めたのだった


ファインマンが、自分のことを一流だと言ったことがあるか。自分で一流だ、なんて言うなんて、お前は一流じゃないんだ。」

と父に非難されたが、私が自分を超一流だと言ったのには、2つ理由があった。

 1つは、社長が私に、

「お前、『へぼの考え休むに似たり』って言葉知ってるか?」

と言ったことがあったのだ。これは、囲碁の格言なのである。私が、

『技術者としては五流です。』

と書いたのは、この時の言葉が頭にあったからなのだった。

 そして、もう1つの理由は、映画『トップガン』の初めの方で、マーヴェリックが、

「歌手じゃやっていけないと思ったから。」

と言われるように、

「私は、物理学者としては超一流だから、辞めちゃって食べられなくなるなんてことはない。心配せず、辞めさせてくれ。」

と、安心させたかったのである。

 その社長は、私に、カオス理論を勉強して、カジノで大もうけしようと言っていた。だから、辞表に、ファインマンが、カジノで食べていく方法を書いた、『ご冗談でしょう、ファインマンさん』の章を書いておいた。社長の奥様にはお好きだった『皇帝』のDVDをプレゼントしたが、社長にプレゼントがなかったので、これをプレゼントにしたのだった。


ご冗談でしょう、ファインマンさん〈上〉 (岩波現代文庫)

ご冗談でしょう、ファインマンさん〈上〉 (岩波現代文庫)


ご冗談でしょう、ファインマンさん〈下〉 (岩波現代文庫)

ご冗談でしょう、ファインマンさん〈下〉 (岩波現代文庫)


 本当は、私には、もう一つ頭にあったことがあった。


 映画『アマデウス』の中で、

「作曲家は君だけではないのだよ。」

と言われてモーツァルトが応えるセリフ、

「それは、分かっている。だが僕が最高だ。」


 そして、伝記にも書かれている、ベートーヴェンの、

「あなたは、家系のために貴族になっている。でも、ベートーヴェンは歴史上私だけだ。」


 2人とも、自分の才能を疑ったことはなかった。それが、作品にも現れている。その自信があるから、2人とも貧しくとも作曲を続けた。天才とは、そういう人達をさす言葉なのだ。


 さて、会社を辞めてまだこの話は続く。


 まだ、解明されていない謎が残っている。

 あのもう1人の上司の、

『C言語』

とは、なんだったのだろう。その謎が解けたのは、この一連の投稿を始めて、私がインターネットで、アセンブラについて、調べたからだった。

インラインアセンブラ

なんて言葉知らなかった。C言語には、そのプログラム上で、アセンブリ言語のプログラムを書くことが出来るような、仕組みがあるのだ。

 だから、あの上司は、C言語を勉強するといいよ、と言ったのだ。私はそのレヴェルまでC言語を勉強しなかったので、今まで分からなかったのである。

 恐らく、これから、何年も経ってから、さらに、コンピューターについて知らなかったことが、明らかになるのだろう。

 それにしても、ランダウの本もそうだが、コンピューターの本も、絶版になっている本が多いね。

 仕方ないのかな。

 さて、今日の話は、ここまで。

 アセンブラを勉強するにはどうしたら良いか、書いてみた。

 現在2015年3月24日16時00分。おしまい。