16W.スキーム
翌日の昼休み、食堂に殿下の姿は見当らなかった。食堂の選択を誤ったのかも知れない。
その日は急ぐことじゃないから、明日の昼休みに出会ったときに話をすれば良いだろうと思った。
その翌日の昼休みには、各食堂を廻って少し真剣に探してみた。食堂で殿下達を見付けることは出来なかった。
サッカーの見学をしているんじゃないかと思って、グラウンドも見に行った。サッカーをしている学生は居たのだが、殿下達の姿は無かった。
参ったな。明日以降に殿下を見付けられるかどうか分からなくなっているぞ。
このまま無策で何日も過しては不味いと思った。
午後の業務が開始して時に、アイルさんに許可を貰って、物理実験の場所へ行ってみた。
今日は週の3日目なので学生達は物理実験棟に居るだろう。
殿下が休んでいるのでなければ、実験棟で見付けることが出来る筈だ。
もし殿下が休んでいるとしても、最悪何時も一緒に居た連中に伝言を頼むことが出来るんじゃないかな。
カイロス君は欠席する事が多いと言っていたが、それでもゼリア君かムザル君のどちらかは居るだろう。
物理実験棟に入るのは初めてだ。
講義室に入る為に、入口に居る騎士に職員証を見せて、学生の一人に用事があると伝えた。
敢て殿下の名前は伝えなかったが、大丈夫だろう。
職員証を見た騎士は特に咎める事も無く中に入れてくれた。
物理実験棟の講義室の中に入ってみると化学実験棟の講義室とは全然違っていた。
部屋の大きさが化学実験棟の講義室の何倍も大きい。
約d500デシ(=72m)角の広い部屋の中央に直径d100デシ(=14.4m)ぐらいの円形のステージがある。
化学実験室とは違って、そのステージを中央の空間を囲うように何重もの円形に大型の机が並んでいた。
以前薬剤研究室に仮配属していた時に見た化学実験棟の机の配置とは違っている。
化学実験棟の講義室も大きな机が並んでいたのだが、その机の真ん中には棚や水道設備があった。
その大きな机は縦横に整列していた。
やはり、講義内容が違うから机の配置や設備の状況が違うんだろうな。
部屋に入って殿下の姿を探した。中央に一番近い机の一つに4人で座っているのが見えた。
それぞれの机の上にはガラス製に見える筒が何本もあった。
何に使うのか分からない道具が同様に全ての机の上に起かれてある。
学生達は4人ずつに分かれて、それぞれの机に着席していた。
中央のステージの上には、d60デシ(=7.2m)近い高さの太いガラスの筒があった。
ガラスの筒には梯子が掛けられていた。
ステージの上にはピソロ准教授が居て、ガラスの筒の下に置かれている道具を使って何か作業をしている。
オレは殿下達の机まで移動した。
殿下の隣の席が空いていたので、そこにオレは座った。
席に座るオレに殿下が気付いた。
「あれ?ミケルさん。どうしたんですか?」
「少し伝えたい事があって来たんだが……それよりピソロ准教授は何をやっているんだ?」
「万有引力の実験ですよ。」
「これから鶏の羽を落してみるんです。」
殿下に続いてムザル君が説明をしてくれた。
万有引力の実験?
それは良いが、鶏の羽ってのは何だ?
その時ピソロ准教授が講義棟の学生全員に聞こえる大きな声を上げた。
「中の気圧が充分に下がりましたから実験を行ないます。良く見ていてください。」
オレは中央に居るピソロ准教授の方を見た。
准教授はガラスの筒の脇にある道具のスイッチを押した。
それと同時に道具の電球が点灯して筒の上端にある蓋の様なものが開いた。
何かが筒の中を落下している。
あれは鶏の羽か?
鶏の羽は筒の中を落下して、あっという間に筒の底に落ちた。
鶏の羽が底に落ちた瞬間に先刻とは別の電球が点灯した。
それからピソロ准教授は、道具から吐き出されていた紙の帯を切り取った。
その紙の帯と別な紙の帯を左右それぞれの手に持って掲げてガラスの筒の周りを廻りながら学生に見せている。
「今回のチャートはこちら。そして、こちらは先日実験した金属球の時のチャートです。
どちらも同じ位置に印が付いています。
これから分かる事は、金属球も鶏の羽も落下時間が同じだということです。
教科書にある通りに重力は等しく全ての物体に加わっています。
鶏の羽が空中をゆっくり落ちるのは、空気の影響だと証明されました。」
講義棟全体が響めいた。
「准教授。その紙を見せてもらっても良いですか?」
一人の学生がピソロ准教授に声を掛けた。准教授は手に持っていた紙の帯をその学生に渡している。
渡された学生が周りの学生と紙の帯を見比べていた。
えーと。何だったんだ?今のは。
「あの紙の帯は何なんだ?」
「あの紙ですか?あれは時間を測るものですよ。」
何だか皆目分からない。
「申し訳ないがもう少し詳しく教えてくれないか?」
それから、4人は今の実験の詳細を教えてくれた。
先刻准教授が実験で使ったものと同じ道具が机の上にあった。
准教授が両手に持っていた紙の帯を見せてもらった。
厚い紙の芯に薄い紙が巻かれていた。
これを時間を測る道具に取り付けて動かすと、一定の速度で道具から紙の帯が吐き出される。
スイッチを押して上端の蓋が開いた瞬間に紙の帯にインクが着く。
ガラス管の中を落下したものが底に接触すると再度インクが着く。
その二つのインクの間隔が落下時間を示している。
紙の吐き出される速度が分っているので、そのインクの間隔を測定すれば、落下に掛かった時間を知ることが出来る。
今回の物理実験で殿下達は先刻ピソロ准教授が行なったのと同じ実験をこの机の上で行なう。
中央で准教授が見せていたものとはガラス管の太さがかなり違う。
ガラス管を繋いで落下する長さを変えたり、ガラス管の中の空気の有無、落下させるものを金属の小球の場合と綿で出来ている球に場合、そういった条件を変えて落下速度を測定する。
その結果を考察してレポートにして提出するのが今週の課題なのだそうだ。
それで何本ものガラスの筒が机の上にあったのか。
しかし、空気が無いと鶏の羽もあんな風に落ちるのか?
空気の影響というのは凄いな。
凄い勢いで鶏の羽が落ちていた。
「あんな速度で鶏の羽が落ちるのは初めて見たな。」
「ええ。私も初めて見ました。空気が無いと鶏の羽もあんな速度で落下するんですね。
吃驚ですよ。
あれ?そう言えばミケルさんは何か伝えたい事があったんですよね?」
実験を見て少し驚いた所為か忘れていた。
「そうそう、今度、オレとジーナが結婚式を挙げる日が8月d27日に決まって、午後に宴会をすることになったんだが、もし都合が付く様だったら参加してもらえないかと思ったんだ。
どうだろうか?」
「8月d27日ですか。あっ、メーテスの休日の日ですね。その日の予定ってどうなってるんだろう?」
殿下はカイロス君に訊いた。
「その日の予定は未だありませんね。大丈夫じゃないですか?」
カイロス君が応えた。
「大丈夫みたいです。是非参加させてください。」
それを聞いて殿下が返事をする。
「オレ達も参加して良いですか?」
ゼリア君が期待に目を輝かせて訊いてきた。
「いいとも。歓迎するよ。
だけど、何故カイロス君に予定を訊いているんだ?」
カイロス君以外の3人が顔を見合せた。
「カイロス君は優秀過ぎて。予定だけじゃなくって色々頼りにするのが癖になってるんです。」
遠慮勝ちにムザル君が応えた。
この4人の中でカイロス君は一番年下なのにか?
というよりカイロス君は成人も未だだよな。
良いのか?それで。
だけど、カイロス君は先日のメーテスの試験の主席だったか。
このままいくと、カイロス君は殿下の秘書官になるのかもなと漠然と思った。
「先日のサッカーの親善試合の時の仲間達にも声を掛けても良いですか?」
再びゼリア君が訊いてきた。今度もまた期待で目が輝いている。
先日の親善試合の後の飲み会には結構な人数だったな。
事前に人数が分かってれば大丈夫か。
人数を確認してマリエーレに伝えておけば良いだろう。
「ああ、構わないよ。ただ来週中ぐらいには大体の人数は教えてくれるかな。オレの同期のヤツが宴会場の準備をやっているんだが、人数が多い様なら伝えておかなきゃならない。」
「分かりました。人数が決まったら伝えに行きますね。ミケルさんは今はどの研究所に居るんですか?」
「来週一杯は物理研究室に仮配属なんだが……来週の末にオレが聞きに来るよ。
あっ、そうそう、昼休みにグラウンドでサッカーを見てるのかと思ってグランドに行ってみたんだが君達は見当らなかったんだ。昼休みには何処に居るんだい?」
「あっ、それは申し訳なかったです。私達は最近バスケットボールに夢中で。昼休みは体育館に居るんですよ。」
殿下が詫びながら応えてくれた。
「そうなんです。バスケットボールでもモンタニ戦法が使えるんじゃないかって、今試しているところなんです。」
カイロス君が満面の笑みで口にした。この様子を見ると普通に子供だよな。
そう言えばサッカーの他にも球技があると聞いていた。
しかし、オレの名前の付いた戦法というのは止めて欲しい。
周りの学生達が実験を始める音が聞こえてきた。
大分長居をしてしまったのに気付いた。
「大分長居をしたみたいだ。実験の邪魔をして申し訳ない。」
「いえ。大丈夫です。私達のグループは前々日に殆ど実験を終えてますから。」
「カイロスのお陰だな。」
「全くだ。幸運としか言い様が無いよな。」
カイロス君は予定の把握だけじゃなくって、本当に様々に手助けしているみたいだ。
オレは邪魔をしたことを詫びて物理実験棟を後にした。
物理研究室に戻るとグループメンバーはサブルーチンプログラムの作成をしていた。
このところ、午後は時間一杯アイルさんから依頼されたサブルーチンプログラムを作っている。
既に大半のサブルーチンプログラムは完成している。
一つ一つのサブルーチンプログラムは本当に些細なものだ。
しかし、作る数量が多い。
サブルーチンプログラムを組み合わせたサブルーチンプログラムもある。
上手く動作するかどうかを確認するために、他のサブルーチンプログラムを呼び出していないものから作っていく。
・文字列を比較するサブルーチン。
・文字数を数えるサブルーチン。
・メモリーの一部を別の場所にある特定の場所のメモリーにコピーするサブルーチン。
・メモリーの指定した範囲を全て$0000にするサブルーチン。
・トラックとセクターの数値からその場所にある外部記憶の内容を特定の場所のメモリーに読み込むサブルーチン。
・同じく特定の場所にあるメモリーの内容を外部記憶に書き込むサブルーチン。
・外部記憶の空いている場所を見付けるサブルーチン。
...
こういった内容の指示が全部でd100程ある。
オレ達が作るサブルーチンプログラムは相互に呼びあっているものが多い。
さらに、アイルさんが作ったモニターと呼んでいるプログラムの中のサブルーチンプログラムを呼び出して実行するサブルーチンプログラムもある。
サブルーチンプログラムを幾つも組み合わせていくことで、複雑な動作が出来るようになっていくのが分かる。
最初の内は、細かなサブルーチンプログラムを作って、それでどうなるのか分からなかった。
宿舎に帰ってからの勉強会ではオレ達が作っているサブルーチンプログラムがどんな役割を果しているのかの議論をした。
皆で話し合うことで、段々とこれらのサブルーチンの集まりから何が出来るのかの全貌が分かってきた。
オレ達が作っているサブルーチンは最終的に4つの塊になるのだろうと予想した。
・メモリーの上にある数の並びをそのまま外部記憶に名前を付けて格納する。
・外部記憶に名前付きで格納されている内容をメモリーの上に読み込む。
・付けられた名前を管理して名前のリストをメモリーに読み込む。
・外部記憶に格納されているものを消して、外部記憶に格納できる場所を作る。
外部記憶に格納するメモリー上にあった数の並びは、トラックとセクターという二つの数字で管理される。
このトラックとセクターの二つで指定される外部記憶の領域には格納出来る上限が決まっている。
それより大きなメモリーの領域を外部記憶に格納するためには、メモリーの内容を分割して、幾つものトラックとセクターを使うことになる。
外部記憶に格納する際に、その内容の名前と、その内容がどのトラックとセクターにどういった順番で格納されたのかを外部記憶の特定の場所に記録しておく。
こうすると、外部記憶のバラバラの場所に格納されている内容をメモリーに読み込むことが出来る。
オレとハムは、オレ達が作っているサブルーチンプログラムが上手く機能するのかを確認していったのだが、奇しなところは見付からなかった。
オレもハムも良く考えられている仕組みだと納得した。
今週中には全てのサブルーチンプログラムは完成しそうだ。
これは6人で分担して作業をしたのが大きかった。
ニーモニックを並べてプログラムを組むのは主にオレとハムとモンさん。
マラッカがそれをd14進の記号列に変える。
アンゲルは専らそれをコンピューターに入れる。動作試験はイルデさんの担当だ。
オレ達が作ったサブルーチンプログラムは全て外部記憶に収めていく。その管理もイルデさんが担当した。
当初は其々に一つのサブルーチンプログラムを作って動作確認までをしていた。ただ、メンバーによって得手不得手があった。
アルゴリズムを考えてニーモニックを並べるのはオレとハムとモンさんが得意で、ニーモニック列からd14進の記号に変換するのはマラッカが、コンピューターのキーを叩くのはイルデさんとアンゲルが得意だった。
アイルさんにこの分担の事を伝えたら、アンゲルが使っているコンピューターとイルデさんが使っているコンピューターを電線の束で繋いだ。
そして、アンゲルがキーボードを使ってメモリーに書き込んだ内容を、イルデさんのコンピューターに送る方法を二人の教えた。
「これで、アンゲルさんが入力したデーターを、イルデさんがが使っているコンピューターに送ることが出来ます。
こうすれば、アンゲルさんが入力した内容をイルデさんのコンピューターで確認する作業が出来るようになりますよね。」
何をしているのかは分からないが、二人で別々のコンピューターを使って分担して作業が出来るようにしてくれたみたいだ。
この分担に変えてからは、効率的に作業が出来るようになった。
休日の前の日には全てのサブルーチンの作成を終了した。
「もう出来たのですか?
動作試験はどうでしたか?」
「アイルさんからの指示の内容は完了。試験は全て合格。」
イルデさんがアイルさんに報告した。
それから、アイルさんはあれこれと質問をした。応えたのは全ての試験をしたイルデさんだ。
イルデさんは何時も通り余計な事は一切言わない。簡潔に応えていた。
「良さそうですね。それじゃそのサブルーチンのデータを貰えますか?」
イルデさんが、サブルーチンを格納したトラックとセクターを記載しているリストをアイルさんに渡した。マラッカはオレ達がニーモニックを書いてマラッカがd14進に変換した多量の紙の束を渡した。
「ボクはこれから皆さんが作ってくれたプログラムとモニターを繋げるための作業をします。それ程時間は掛からないと思いますから、お茶でも飲んで待っていてください。リカルドさん、エレーナさんに伝えてもらえますか?」
アイルさんは後に控えていたリカルドさんに伝え、リカルドさんは入口に居る騎士に何かを伝えた。
アイルさんは、それまでイルデさんが使っていたコンピューターのキーボードを物凄い勢いで叩き始めた。
少しするとエレーナさんはお茶と菓子を持ってきてくれた。
「あっ、ボクの分もお願い。もうすぐ終わるから。」
アイルさんは物凄い勢いでキーボードを叩きながらエレーナさんに伝えた。
エレーナさんはオレ達メンバーとアイルさんの分のお茶を空いているテーブルに並べた。
程なくして、それまでの凄い勢いが止んで、キーボードを少し叩いては画面を見ていた。
「良かった、動いた。じゃあボクもお茶にしよう。」
アイルさんは席に着くとお菓子を頬張りながらお茶を飲み始めた。
この姿を見ると子供にしか見えないんだよな。
「動いたんですか?」
アンゲルがアイルさんに訊ねた。
「ええ。動いたと思います。皆さんのお陰ですね。こんなに早く出来上がるとは思ってなかったんですよね。まだバグがあるかも知れませんけれど、それは使ってみないと分かりません。
これで、スキームにファイル操作の関数を組込めば色々と楽になります。」
どうやら上手く行ったみたいだな。何時もの事だけど、後半は何の話をしたんだ?
順番に訊いてみるしかないな。
「バグって何ですか?」
「バグというのはプログラムが意図しない動作をすることですね。プログラムは何かをする為に作っているんですけれど、想定外の状況では想定外の動作をする可能性があります。
それはプログラムそのものに誤りがある場合もありますし、想定していなかったデータを受け取ったりしても起こります。
全てについて想定するのは難しいので、そういった事は起こり得ますね。」
「それは予期しない事が起こるという事ですか?」
「そうです。その為には想定されることを漏れ無くプログラムに組み込んでおくのが良いんですけれど、それはそれで難しいんですよ。
まあ、大抵の場合はプログラム自体が間違って書かれている所為で意図しない動作をするんですけどね。」
「そのバグを無くすのにはどうするんですか?」
「それは、プログラム自体が間違っていないかの確認が第一で、あとは実際に動かしてみて様々な状況で試験してみるしか無いです。」
なるほどな。プログラムってやつは作って終りという訳じゃないのか。それは道具を作るのとあまり変わらないな。
「あと、スキームって言ってませんでした?それは何ですか?」
「いい質問ですね。スキームというのは高級言語なんです。先刻REPループが動いたところなんですよね。これでプログラムを作るのが楽になります。」
なんだかアイルさんは嬉しそうにしている。
また知らない単語が増えた。
メンバーの目がもう止めろと訴えている様に見える。
そのままアイルさんは言葉を続けた。
「実は作らなきゃならなないものが多すぎるんですよね。
プログラムって魔法で作るってことが出来ないので全て手作業になりますから。
プログラムを作る効率を上げないとならなかったんですよ。
それで、スキームというのはリスプ系の言語なんです。構文解析が極めて楽で、簡単にREPループを構成できるんです。少し括弧が多い構文になるのですが、それでもアセンブラと比べたら遥かに高級な言語なんです。
実は最初にエディターを作ろうかとも思ったんです。でもスキームの上でエディターを走らせれば良いことに気付いて、全てアセンブラで作る手間を考えると先に高級言語があった方が良いという判断になったんです。
言語はフォースも候補になってたんです。フォースにするかスキームにするか随分悩んだんですよね。フォースはスタックマシン言語で、スキームは関数言語なんです。どちらも構文解析が楽な言語で、プログラムの記述方法がフォースの場合には逆ポーランド記法で、スキームの場合はポーランド記法になるかの違いがあります。
フォースは制御用の言語としては優れているんですけど、後々大規模なプログラムを作ることを考えるとスキームの方が良いかなと思ったんですよね。
今回DOSが出来たので、スキームにもファイル操作の関数が作れるようになったんです。
これでスキームを使って、データやプログラムを簡単に外部記憶に保管できるようになります。
高級言語が必要な第一の理由は、アルゴリズムを考えるのに適していることがありますね。アセンブラで細かなプログラムを構成するよりもずっとアルゴリズムのことを考え易くなります。
それにスキームでアセンブラを作ることも出来ますし、今はインタプリタのスキームを、コンパイラにすれば、動作速度も上げられます。
これまで、随分と大変だったんですが、ようやくコンピューターらしい使いかたが出来るようになりした。
後でスキームの文法を教えることも出来ますよ。
便利ですから絶対に習得しておいた方が良いです。」
ダメだ。何を言っているのか全く分からない。
先刻までと違って、知らない単語が山の様に出てきた……。
それに何だかとても嬉しそうにしている。
取り敢えずここで話を終わらせないと。
「そうですか……では後で教えてください。」
「ええ。勿論です。絶対に後悔しませんよ。」
メンバーは全員で諦めの表情をしていた。




