表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
29/46

第29話 研究を理解してもらうには

久しぶりの更新です。

 放課後、俺たちはマイコン部の部室を訪れていた。

 

「あれ?センパイたち、どうしたんですか?」


 出迎えた結菜(ゆな)が不思議そうに首をかしげる。


「お前……。部活に来たら、不思議みたいな物言いだな」

「だって、実際そうじゃないですか。来たり来なかったりとかバラバラですしー」

「ま、まあ。否定出来ないけどな。でも、ここの部活が単にダベり部になってるせいもあるだろ」


 そこは強く言っておきたい。


「ダベリ部ってなんですか?センスないですよ」

「別にセンスはどうでもいいから。適当にしゃべったり、PCいじってなんかやってるだけだろ」

「そりゃ、私達もそれが居心地良くて入部したわけですし」


 と、言い合いをしていると、


「ちょっと善彦(よしひこ)、結菜に話聞くんじゃなかったの?脱線してるわよ」


 やれやれといった表情で涼子(りょうこ)(たしな)められてしまう。


「ああ、そうそう。結菜にちょっと聞きたいことがあったんだよ」


 忘れかけていた本題を切り出す。


「善彦センパイが私に聞きたいこととか珍しいですね。明日、雨でも降るんじゃないですか?」

「ネタはいいから。結菜の目からみてさ、俺たちがやってる事ってどういう風に見えてる?」

「どういう、とは?」

「研究者としての活動とかのこと」

「ああ。なんか、論文読んだり、学会とか行ったり、小難しい事やってるなーくらいですね」


 一応、旅行とかいいつつ、学会である事自体はこいつも認識してたらしい。


「やっぱそうだよな。で、さ。ちょっと相談なんだけど……」


 今朝の出来事を交えつつ、研究わかってもらえなくて辛い問題を話してみた。


「センパイたちの言いたいことはわかりましたけど、じゃあ、まず、私に説明してくださいよ!」

「結菜に?」

「そうです。私に説明出来ないのに、学校中が理解してくれとか無理な相談ですよ」

「涼子にも言われたな、その話」

「だから言ったでしょ?」

「うぐぐ」


 しかし、説明、説明、ねえ。

 そもそも、結菜の前提知識が何だって話だよな。


「お前、パソコンはわかるよな?」

「センパイ、私の事馬鹿にしてます?」

「いや、そうじゃなくて確認。OSは?Windows(ウィンドウズ)とかmacOS(マックオーエス)とかLinux(リナックス)とか」

「正直、よくわからないです。WindowsとmacOSだと同じアプリが動かないとかくらいですね」

「そんなもんか。じゃあ、プログラミングは?JavaScript(ジャヴァスクリプト)で簡単なの書いたくらいはあっただろ」


 結菜が、五目並べゲームを習作で作っていた風景を何度か見た覚えがある。

 

「センパイたちが見たことあるように、簡単なの書いたことあるだけですよ。JavaとかRubyとか色々プログラミング言語があることくらいはわかってますが、他の触ったこともないですし」


 とすると、「プログラミング言語」という概念がある事くらいは前提にしてもいいか?


「じゃあ、それを踏まえて聞きたいんだけど。JavaScriptってどうやって実行されてると思う?」

「は?何言ってるんですか?」


 わけがわからないという目で見られる。


「ちょっと善彦。唐突過ぎるわよ。たとえば、こんなプログラムがあったとするわよね」


 と言いつつ、涼子はホワイトボードに、JavaScriptのプログラムを書き出した。


let i = 0;

i++;

console.log("i = " + i);


「これを実行すると、何が表示されるかしら?」

「それは……i = 1ですよね。さすがにそれはわかりますよ」

「そうよね。なら、たとえば、i++が何をしているか答えられるかしら」

「何をって。変数iの中身を1足してるんですよね」


 何を当たり前の事をという顔で言う結菜。

 こういうところ、なんだかんだでちゃんとわかってるんだな。意外だ。


「じゃあ、"i++"を"i+"に変えたらどうなると思う?」

「え?それは……考えたこともなかったです。エラーになるんじゃないですか?」

「じゃあ、試しに"i++"を"i+"に変えてみるわね」


 そう言いつつ、今度は、ノートPCを開いて、プログラムを打ち込んでいた。


let i = 0;

i+;

console.log("i = " + i);


 このプログラムを実行すると……


> node increment.js

increment.js:2

i+;

^


SyntaxError: Unexpected token ;



「なんだか、わけのわからないエラーが表示されましたね」


 まあ、そうだよなあ。普通は、「わけのわからない」エラーだよなあ。


「口挟むけどさ、このわけわからないエラーメッセージを出してるアプリってなんだと思う?」


 今、プログラムを渡した相手は、nodeコマンドだ。


「アプリ?この、nodeコマンドって奴じゃないんですか?」

「ああ、ぶっちゃけて言うと、コマンドとアプリってだいたい同じ意味なんだよ」

「じゃあ、nodeアプリがなんか表示をしているわけですね」

「そうそう。で、i+;だと構文解析の前の字句解析で……ってこれだと意味不明か」

「はい。全く意味不明ですね」


 全く容赦がない。まあ、わからんもんはわからんか。


「日本語にたとえてみるのはどうかしら。「今日は晴れです」この文章の意味はわかるわよね?」

「さすがに。今日の空はあんまり雲がないとか、そんな感じですよね」

「じゃあ、「今日は晴るです」だとどうなるかしら」

「意味不明ですね。そんな事言う人、現実に居るんですか?」

「あくまで、たとえだっつーの。「今日は晴るです」って読めるか?」

「書いた人が()()()()んだろうな、くらいはわかりますね」


 お、これならいいところまで理解してくれそうだ。


「そう、これは間違った文章なんだ。たぶん、書いた人は、「れ」を「る」と間違えたんだろうな」

「で、それがさっきの話と何の関係が?」

「大有りなんだよ。"i+;"ていうのは、日本語でいうと、まさにそういう「間違った文章」なんだ」

「間違った、ていうのはわかりますよ。でも、それってバグと違うんですか?」


 ああ、そう来ちゃうか。

 バグと構文エラーの違いとか言われると、説明に何十時間かかるやら。

 あ、そうだ。このたとえなら。


「バグっていうのはさ、日本語なら、「文章としては正しい」けど、何かおかしい文章のことなんだ。たとえばさ、結菜、お前、男だろ?」

「センパイ、喧嘩売ってます?私は紛れもない女子ですよ?」


 しまった。たとえがマズすぎて額に青筋を立てている。


「善彦はもうちょっとまともなたとえをしなさいよ。ただ、結菜は確かに女の子だけど、今、結菜は「間違ったことを言われた」とか「おちょくられた」とか思ったから、怒ったのよね?」

「ええ、まあ、そうですが」

「「今日は晴るです」だと、それ以前よね」

「国語で書いたら、減点間違いなしです」


 たとえ話を続けるのは好みじゃないんだが、多少は理解が進んできたか。


「そういう、言ったことがおかしい、おかしくない以前の「論外」なプログラムが、"i+;"なのよ」

「なんとなくわかった気がしますけど。で、センパイたちの研究にどう関係するんですか?」


 そう。それが問題だ。


「ちょいややこしいけどな。さっきのは、「日本語の文法」の問題だろ?で、こっちのは「JavaScriptの文法」の問題ってとこ。で、「JavaScriptの文法」みたいなのを作ったりするのが俺たちの専門」

「わかったような、わからないような。でも、雲の上の研究をしてることはわかりました」

「雲の上……そうか?」

「だって、JavaScriptがこういうものだって、私は本読んで一生懸命勉強したわけですけど、センパイたちは、JavaScriptは「こういうものだ」って決められるんですよね。凄いことはわかります」


 相変わらず、実感は湧かないようだったけど、一応、意義は伝わったらしい。


「で、その辺をうまいことマイコン部の展示で説明したいんだけど、どう思う?」

「正直に言っていいですか?」

「ああ」

「無理だと思います!だって、私だって、今説明されて頭グチャグチャですよ?パソコンに縁がない人に説明するとかもう絶望的ですよ!」


 予想していたことではあるけど、力強く断言されてしまった。


「まあ、そうだよな。もうちょっといい説明考えてみるか……」

「……私も少しは協力しますよ」

「え?」


 疲れた顔ながら、殊勝なことを言う後輩に少しビックリだ。


「だって、センパイたちは、陰口叩かれて嫌だったわけじゃないですか。研究がどうとかはわからないですけど、そういうのは私も嫌ですし」

「お前、意外と良心的な奴だったんだな」

「やっぱり、馬鹿にしてます?」

「いや、冗談だ。じゃあ、文化祭まで、付き合ってくれると助かる」

「乗りかかった船ですしね。やりますよ」


 こうして、前途多難ながら、文化祭の展示で、俺達の研究について説明するコーナーが出来ることになったのだった。

 色々な意味で不安しかないけど、まあしないよりはマシだろう。うん。

この話は、内容自体が踏み込みすぎてて、プログラミングしてる人でも意味不明かもです。

ともあれ、主人公たちの研究内容を周知するのはやはりとても難しいようで、前途多難!て感じです。


筆者自身、彼らの研究を高校で理解してもらうとか無理ゲーだろと書いてて思いました。

というわけで、不定期更新ですが、研究を理解してもらうというテーマでもう数話続く……予定です。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
[一言] 一つ、そこらへんは解析と実行が分離されていないインタープリタだと判りにくい部分かも。コンパイラなら、コンパイルエラーになるのが文法エラー。コンパイル通るのに実行結果が正しくないのがバグ、と定…
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ