第45話
「まずこれが」と、ゆあんは一番下に書いた四角を指した。「CPU。処理装置。昔のCMであった『Intel入ってる』のやつ。ここが計算をする。計算っていうのは、プログラムの実行。ここまではバカでもわかるよね?」
「はーーーーーーーい、わかりますうーーーーーー」
言外の意味を大量に込めた喋り方で、優が答える。ゆあんはかまわず続けた。
「で、このCPUは、さっきの『print』とかはそのまま理解できない。CPUが受け付けられるのは、1と0だけ」
四角の脇に、『101010...』とゆあんは書いた。続けて、さっき書かれた『print』から四角へ矢印をつなぎ、その矢印にバツをつける。
「えー、でもさっきprintって書いてあんパンって出てきたのは、なんで? さっきのやつはCPU使ってないの?」
里々がぽんと質問を出す。
「いや、すべてのコンピューターには必ずCPUがあります。あれもCPUが計算して出力した結果です」
「え、でも……」
「それをこれから言うんで」とゆあんは里々の言葉を途中で切った。「なので、CPUに計算をさせたかったら、その前にプログラムを1と0に変換する必要がある。その1と0の前にあるのがアセンブリ言語」
ゆあんは『SUB』や『MOV』とという単語を101010...の上に追加した。
「アセンブリ言語は、このイチゼロを人にわかりやすいように表した言語。この『SUB』っていうのは、『SUB A B』みたいに書いて、AからBをマイナスするっていう命令。これはアセンブラっていうものを使えば、イチゼロの、CPUが解釈できるものに変換できる」
『SUB』から『101010...』へ矢印が引かれた。しかしこの状態でも、黒板の上半分はまだまだスペースが空いている。
「C言語は」と、その空いているスペースに『C言語』とゆあんは書いた。「コンパイルによってこのアセンブリ言語に変換して、最終的に機械語にする。授業でgccって使ったでしょう? あのgccがコンパイラで、アセンブリ言語への変換も機械語への変換もできる」
「あー。覚えがある。あの、gccなんとかってやったの、まずそこのC言語のプログラムをアセンブリ? にして、それから機械語にしてっていうのをしてたのね。それで最後にはイチゼロイチゼロが出てくるのね」
桃が口をはさむ。ゆあんは何も言わずに頷いた。
「これがC。で、Pythonはちょっと違うルートをたどる」
Cの横に『Python』と書くと、ゆあんはその下に一つ横長の丸を加えた。
「PythonはCみたいにコンパイルして機械語っていう順序じゃなくて、バイトコードというものに変換される」
ゆあんは横長の丸に『バイト』まで入れたが、丸が小さくて後が入らなかった。ちょっと考えた後、そのままはみ出させて『コード』と付け加えた。
「で、バイトコードは、Pythonのインタープリタ上で動作する。動作するというのは、Pythonインタープリタが」
「いや、ちょっと。バイトコードっていうのは何? そこが抜けてるんですけど」
優が声を上げた。ゆあんはチョークの手を止め、嫌そうに「いや、言ったでしょ」と答える。
「『バイトコードというもの』しか言ってないじゃん。それがそもそも何なのかって話で」
「いや、だから」
またヒートアップしそうになったところに、桃がばっと手を挙げた。
「先生、私ももうちょっと詳しく聞きたいですー」
「あ、私も……」
二海も、おずおずと賛同した。
「んー……じゃあ……えーと。バイトコードっていうのはここの機械語と、もともとのPythonのコードの中間に位置するコードで……」
その後も、ゆあんによる解説は続いた。バイトコード、インタープリタ、オブジェクト、バイナリファイル、と単語のオンパレードで、それぞれを飲み込むのはかなり難しかった。
「あー。つまり、最終点のゼロとイチになるまでの道のりが違うから、元の出発点が別の書き方でもいいってわけね」
優がそう言ったのは、もうとっくに部活動終わりのチャイムが鳴った後だった。とはいえ、二海も納得するまでには同じくらい時間がかかった。
「やっとわかった?」
チョークの粉だらけになった手をはたき、ゆあんが言った。しかしその声は、
「やば、もうこんな時間だ。早く出ないと閉じ込められちゃう」
という桃の言葉でかき消された。弾かれたように全員が立ち上がった。急いでパソコンの電源を消し、黒板を消し、電気を消し、鍵をしめ、玄関までの廊下を走った。ばたばたばたと、夕日の差し込む廊下に五人分の足音が響いた。
駅までの帰り道、五人はあまり話もせず歩いた。二海はぐったりとしていて、あまり喋りたくなかった。様子を伺うと、他の四人も同じらしかった。
「あー。もう喉かわいた」
坂を下りながら、ぼそりとゆあんはが言った。
「わかる。コンビニ寄ってく?」
桃が提案し、「行く」と優が乗った。
通学路のコンビニは、時間の遅さもあって他に生徒がいなかった。二海は自分用に紙パックのりんごジュースを買い、レジに並んだ。ちょうど、優が会計をしているところだった。キャンペーンをやっているらしく、お金を払ったあと紙の箱に手をつっこんでくじを引いていた。
外に出ると、すでに里々とゆあんが待っていた。ゆあんはコーラを飲み、里々はいちごポッキーを食べている。
「一本いる?」
自分でも一本をくわえながら、里々が口の開いた箱を差し出した。
「あ、ありがとうございます。いいんですか?」
「いーよー」
「……じゃ、ジュース飲みますか?」
「え、いーの? ありがとー」
ジュースを渡していると、今度は優が出てきた。ポッキーをうまく抜き取ることに集中していた二海は、優が話すのを耳だけで聞いた。
「あげるー」
「え?」
「何か、当たったから」
二海がりんごジュースを返してもらったときには、優はすでに一人でコンビニの敷地の端のほうに寄り、ペットボトルの緑茶を飲もうとしていた。ぽきぽきといちごポッキーを食べながら、二海はゆあんの手に缶コーヒーがあるのを眺めていた。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます