第4話 覚えておくには場所がいる

 授業初日の放課後も、俺は特殊文芸部の部室へと足を向けていた。


 可愛かったり綺麗だったりする先輩同輩に囲まれるために、ではなく、特殊文芸の先達の教えを受けるために。


 かくして特殊文芸部室たる尋ねた図書準備室の扉を潜れば、アシンメトリなC型金縁眼鏡に+型髪飾りの付いた太い三つ編みを揺らす十十子さんが出迎えてくれる。


「あれ? 矢國君、久しぶりじゃない! 一年ぶりぐらいね! 元気してた!」


「???」


 この人は何を言っているんだろう?


 昨日、真珠ぱあるの素数を数える Perl の特殊文芸を見たり、Perl の Hello World. を出力する C++ を出力する Java の特殊文芸を教えを受けながら物して実行したり、基子さんからコンパイラとインタプリタの教えを受けたりしたところだ。


 それこそ、二十四時間も経過していないはずだ。


「え? 昨日の今日ですが」


「ああ! そうよね、うん、そうそう! 一日しか経ってないわよね! ちょっと勘違いしちゃった。てへ」


 最後は殊更可愛らしい声を作って言いつつ、自分で頭をポカッとする安定のあざとい仕草の十十子さん。


「じゃ、改めて、基礎的なところから、ね。昨日は雰囲気を掴んで貰うためにそういった部分は説明しなかったけど、今日は基本的なところから取り組んでいきましょう! こういうとき、便利な人がいるから、基子、宜しくね」


 言いながら、「どうぞ!」という感じで手を向けた部室の奥には、ピシッとした黒髪ストレートで、お堅い印象の銀縁の角ばった眼鏡を掛けた先輩の姿があった。


「勝手に理由を後付けしてるけど、基礎を説明しなかったのは単に面倒だったからでしょ。そういうところが杜撰というのよ。そのうえ、あたしに丸投げとか……」


 いしずえ基子もとこさんは作業中の PC の前から律義に立ち上がりつつ呆れたように愚痴愚痴というのだが、


基礎的ベーシックなところ、教えてあげて、ね」


 十十子さんが言葉を変え、最後のところで体ごとクネっと傾けてシナを作りつつウィンクしながらお願いすると、


「任せなさい」


 眼鏡をクイッとして背筋を伸ばし、表情を引き締める基子さんだった。


 昨日のやりとりで、この先輩が己の名前に通じる『基礎ベーシック』に何かとこだわりがある人だというのは承知しいているが、お堅そうでいて、なんだかチョロそうな人だった。


「昨日は、コンパイラとインタプリタという、プログラミング言語の動作の仕組みでしたが、今日はプログラ……特殊文芸の基礎的なところをやっていきましょう」


「宜しくお願いします」


 何やら言い直したのは、十十子さんがなんだか悲しげな眼で訴えるのに応じてのことだろう。


 言語を愛し、言語を紡いで人の心を動かすことを望んでいた俺が入ったのは、普通の文芸部ではなく特殊文芸部だった。


 そこで様々な言語で紡がれる文芸は、人間の心ではなく機械を動かすものだった。


 要するにプログラミングなのだが、十十子さんはそれを『特殊文芸』と表現するのを好む。


 ゆえに、ここは『特殊文芸部』。


 俺がこれから学んでいくものは『プログラミング』と一般に呼称されていようと、ここでは『特殊文芸』と表現するのが適切なのである。


 そういう主張が込められた視線だった。


 これも、一つの表現の妙といえるだろうな。


「うんうん、ブランクがあるところをうまくフォローするいいモノローグね!」


 満面の笑みで親指を立てる十十子さんであるが、俺の考え、顔に出ていたのだろうか? なんのブランクかはよく解らないが、この人がよく解らないことを口にするのは平常運用だから、気にしても仕方ないだろう。


 基子さんの方を見れば、部室の中央に鎮座する大テーブルの奥側、ちょうど入り口を正面にする席から手招きしていた。


 入り口で出迎えてくれた十十子さんの脇を抜け、基子さんの隣へいけば、十十子さんの平らとは比べても仕方ないが一般論で考えれば平均的なサイズの膨らみが目に入る。


 基礎ベーシックにこだわるだけに標準的ベーシックなサイズなのかもしれないな。


「何か失礼なこと、考えてない?」


 十十子さんが俺に笑顔を向けるが、目が全く笑っていない。というか、これも顔に出ていたのだろうか?


 ナチュラルに心を読んでくる十十子さんに俺が辟易していると、

 

「では、こちらの PC を使って説明させていただきましょう」


 基礎ベーシックを俺に教える使命感に燃えて十十子さんの言葉にも胸元にロックオンした俺の視線にも全く気付いていない基子さんが淡々と告げる。


 その言葉に応じる形で基子さん(の胸元)から視線を外し、ディスプレイ一体型PCのモニタに目を向ける。


基礎ベーシックとして最初に知って欲しいのは『変数』よ。矢國君、いきなりだけど『変数』とはなんでしょう?」


 角張った眼鏡の奥の視線を俺に向け、生真面目に問うてくる。


「数学の x や y みたいなものですか?」


「正解です。『みたい』というのが肝ですね。特殊文芸で用いる『変数』は微妙にニュアンスが違いますから。そこを実感して貰うために、少し掘り下げていきましょう。数学の変数はどういうものか、知っている範囲で説明してください」


 どうやら、俺にあれこれ考えさせる流れのようだ。


 ならば、応じよう。


「 y=ax のように式を一般化したり、 x = 10 と特定の値を置き換えたりするもの……ですね」


「そうですね。では、それを踏まえて、この特殊文芸をみてください」


10 A = 100

20 B = 200

30 C = A + B

40 PRINT C


 基子さんが示す画面には、上のような特殊文芸が刻まれていた。


 方程式のようなものと、 Perl や Java で見かけた PRINT の単語から、 A と B の合計を画面に表示するという意味ではないか? と当たりは付く。


「さて、『変数』はどれでしょう?」


 基子さんの質問に、俺は本題を思い出す。

 

 今は、特殊文芸における『変数』というものの話だった。


 とはいえ、これは流石に簡単だった。


「A 、 B 、C です」


 見て感じたまま素直に答えれば、


「正解です」


 ということだ。


 拍子抜けするが、これで終わりということはないだろう。


「では、このプログラムで『変数』がどのように使われているか、説明してみてください」


 なるほど、そう続くのか。特殊文芸的にはどうかは未だ想像が付かないが、今の知識で答えられる範囲で考えてみよう。


「 A という変数を 100 、 B という変数を 200 と決めておいて、 C の右辺の A + B の A に 100 が、 B に 200 がそれぞれ代入されて、 C には 300 が入る……ですか?」


 そのままもいいところだが、今の俺にはそうとしか理解できない。


 今は教えを請うているときだ。見栄を張らず自分の分に相応の回答をするのが好手だろう。


「ええ。おおよそ正解です。では、更に掘り下げます」


 まだ、あるのか。


「『 A という変数を 100 、 B という変数を 200 と決めておいて』と言いましたが、この『決めておいて』というのはどういうことでしょう?」


 そうきたか。


  C = A + B という式について考えると、これは、 A と B の値に応じて C の値が決まる、ということだ。


 さっき『決めておいて』と表現したのは、 A と B の値が決まらなければ C の値が決まらない、という数学的な都合だったが、少し見方を変えてみよう。


  A = 100 というのを日本語で表現すると、『 A は 100 と同じです』ということになるだろう。


 そこを軸にすると。


「端的には、『代名詞』のようなものでしょうか? 『俺』が『矢國行人』になるように、 A と 100 を代替可能にする、という意味で。そうすると、 A = 100 、 B = 200 とすることで、 A と 100 、 B と 200 は代替可能になります。だから、 C = A + B と記述した場合に、 A と B はそれぞれ 100 と 200 の代替だから、 C = A + B = 100 + 200 = 300 となる……」


 語学寄りにしてどうにか考えてみたが、どうなるだろうか?


「代名詞……言語好きという矢國君らしい例えですね。確かに、この特殊文芸において、そう表現することは間違いとはいえないですが、根本的な部分でずれていませんか?」


 そこで、眼鏡をクイッとしてあからさまに「これから大事なことを言います」と仕草で示し。


「語学が得意なら、ピンとくると思いますが、その説明だとこの A 、 B 、 C は全て変数ではなく定数になるのではないですか?」


「あ……」


 そうだ。


 『変数』は文字通り変化する値だ。


 なのに、代名詞は基本的に文脈で特定の誰かを示す。不特定多数を指すこともあるが、それは『不特定多数』という一つのものを示しているといえる。


 そう考えれば、『変数』ではなく『定数』だ。


 あれ、どういうことだ?


 俺が混乱していると。


「矢國君も矛盾に気付いたと思いますが、特殊文芸において、この A 、 B 、 C は間違いなく『変数』です」


 そう言って、基子さんは先ほどの特殊文芸を修正する。


10 A = 100

20 B = 200

30 C = A + B

40 A=300

50 C = A + B 

60 PRINT C


「これは、正しい特殊文芸です。先ほどとの違いを考えてみてください」


 俺は、基子さんの物した特殊文芸を読み、


「 A の示す値が、変化している、ですか?」


「その通りです。 A は変更可能。だから『変数』」


「なるほ……ど?」


 納得しそうになったが、なんだか煙に巻かれたような気もする。


「いや、単に定義をやり直しただけだから、 A を『定数』と表現しても差し支えないのではないでしょうか?」


 疑問は口にすべきだろう。


 なんだか、話が進むごとに『変数』と『定数』という言葉の意味が、俺の中で崩れていく気がして、正直気持ちが悪い。


「いいえ。特殊文芸においては、 A 、 B 、 C は紛うことなき『変数』で、決して定数ではありません」


「そう、ですか……」


 そう言われてしまうと、納得するしかないが、やはり釈然としないものがあった。


 俺が戸惑っているのを察したのか、


「基子らしい、回りくどくも基礎を外さない説明ね」


 十十子さんがここで口を挟んでくる。


「でも、そろそろ核心を伝えないと、読者……もとい、教え子が、続きを読む……じゃなくて、聞くモチベーションが下がっちゃうんじゃないかしら? テコ入れ、しない?」


 見えない長い棒を使ってテコの原理で床の上の何かをひっくり返すような動きの後に、更に額の汗を拭う仕草で、基子さんを窘める。


 相変わらず、なんだかよく解らないことが混ざっているのは気にしてもしかたないのだろうが、モチベーションが下がる、ということはないので見くびらないで欲しいと思いつつも、疲れるのは事実だ。


 そんなことを考えていると。


「そうね。確かに、十十子の言う通りかもしれないわ……矢國君。基礎ベーシックを教える喜びに少々舞い上がってしまってごめんなさい」


 堅苦しく、頭を下げて謝罪する基子さん。


「いえ、そんな頭を……」


 上げてください、と言おうと思ったが言葉を途切れさせたのは、頭を下げたことで基子さんの制服の胸元が素敵なことになっているのをもう少し眺めていたかったからではなく、基子さんなりの筋を通そうとしているのを妨げるのは却って失礼だと思ったからだ。


 ほどなく基子さんは頭を上げて背すじを伸ばし、


「では、説明させていただきましょう。特殊文芸における基礎ベーシック中の基礎ベーシックである『変数』について」


 またまた眼鏡をクイっとし、


「特殊文芸における『変数』とは、『変更が可能な値の入れ物の場所』、と考えるのが最も応用の利く理解です」


 とレンズの奥の瞳を真っ直ぐに俺に向けた決め顔で言った。


「一番最初に意識して欲しいのは、特殊文芸における『変数』『定数』とは、数学におけるそれらとは似て非なるものとして考えて欲しい、ということです。数学などの分野で考えると『値を置き換えるもの』『変化する値を表現するもの』といった発想になりますが、特殊文芸においては、『値の入れ物の場所』と理解すべきなのです」


 ん? どういうことだろう?

 

 今一ピンとこないのだが。


「ピンときていないようですが、仕方ありません。十十子が基礎ベーシックを教えていなかったのですから。これから、噛み砕いて説明しますので、それで理解して貰えれば充分です」


 そう言って、テキストエディタに、次のようなものを書く。


+-------------------------------------

+ A

+              B

+  C

+-------------------------------------


 『変数』が不規則に配置された図のようだ。


 『場所』という言葉を使っていたので、イメージしやすいように書かれたモノだとは理解できるが、そこから先は、まだ俺には解らない。


「まず、前提として、コンピュータは値を覚えておくための有限の領域を持っています。それが『記憶領域メモリ』というものです」


 これぐらいの用語は、聞いたことがあった。パソコンはスマホのスペックにも書かれている内容だ。


「この図の +--.. で囲まれている部分が、コンピュータの記憶領域と考えてください。その上で、 A、B、Cというのが、記憶領域上に確保した値の入れ物の場所です」


 俺は、図を見ながら考える。


 先ほどの例を追い駆けると、この A という場所に 100 が、 B という場所に 200 が、Cという場所に 300 が入って、それから、 A の場所に改めて 300 が入って、 C の場所に 500 が入る……


  A と C の値は変化しているので、これが『変数』ということなのだろう。


 また、 B も変更可能な入れ物の場所とすれば、


B = 500


 とか書けば、Bの場所に 500 という値が入るのだろう。


 更に、 D という新たな変数を登場させて、


D = 150


 とか書けば、 150 が D の場所に入る……あれ?


「あれ? だとすると、もしも D という新たな変数が記憶領域メモリ上の A と同じ場所にあったら、 D = A と書かなくても、 A と全く同じ値が取り出せる、ということになるんじゃないでしょうか?」


 図を見ての率直な疑問を口にすると、


「矢國君、本当に筋がいいわね」


 角張った眼鏡の奥の瞳を丸くして、基子さん。


「その通りよ。そこまで考えれば『入れ物の場所』という表現の意味を掴めるのじゃないかしら?」


 どうやら、俺の答えがお気に召したようで、嬉しそうにレンズの向こうの瞳を柔らかく細める基子さんだった。


 なら、その期待に応えねばならないだろう。


 ここまでくれば、数学などの『変数』と特殊文芸でのそれと区別を強調した意味が、なんとなくはイメージできる。


「数学的に考えると、どうしても置き換えた『記号』と『値』を交換可能に考えてしまいますが、特殊文芸ではあくまで『場所』だから、違う『記号』であっても同じ場所を示していたら、同じ値になってしまう。だから、『場所』という理解が大事、ということですね……ひあっ!」


「本当、優秀な教え子で、お姉さん嬉しいわ」


 いつの間にか俺の背後に立っていた十十子さんが、背後から急に肩を揉んできたものだから、最後に変な声が出て締まらないことこの上ない。


 だけど、十十子さんの言葉と、何度も頷いて俺の理解を仕草で肯定する基子さんの姿をみれば、俺の答えが望まれた答えだったと判断するのは決して思い上がりではないだろう。


「さて、次の課題に移りたいところだけど、結構時間掛かっちゃったから一旦休憩を……」


 ひと段落して十十子さんが部長らしく区切りを設けようとしたところで、廊下からちょこまかとした足音が聞こえて来たかと思うと、


「遅れて済みません! 掃除当番で手間取っちゃいまして」


 胸を弾ませ(物理)部室へ駆け込んで来たのは同級生の真珠ぱあるだ。


「あ、ちょうどよかった、真珠ぱあるちゃん、次の講師は貴女にお願いするわ!」


「ハァハァ……十十子姉様のお願いなら、ハァハァ……何でも……ハァハァ……聴きますですよ!」


 いきなりの十十子さんの無茶ぶりを、息が上がりながらも快諾する真珠ぱある


「それじゃぁ休憩の後は、真珠ぱあるに制御構文の説明をお願いしちゃう、ぞ!」


 最後に、真珠ぱあるを指差しながら、半身になってウィンクするよく解らない仕草を見せる十十子さんだった。 

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

特殊文芸部は十十子《じゅじゅこ》さん ktr @ktr

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

フォローしてこの作品の続きを読もう

この小説のおすすめレビューを見る

この小説のタグ