プログラミング魔法のチェックポイント
佐上達は改めて、実験場の一室に集まった。
これまでは佐上と広域破壊魔法兵器拡散防止機構の人間だけで話し合っていたのだが、更に研究者や国連機関の人間も加わった形になる。
彼らの参加については、広域破壊魔法兵器拡散防止機構の人達も快く承諾してくれた。
「――と、いう訳なんですわ。要するに、プログラミング魔法だろうと何か特徴的なロジックというか、そういうものがあれば、それを手がかりに、この人らもどこで無許可でおかしなものが作られているのかが分かるかも知れないっていう説明でした。でしたよね?」」
佐上の確認に、広域破壊魔法兵器拡散防止機構の人間が頷く。
なお、佐上が研究者や国連機関の人間を呼んだのは、ちょっとこれは自分では判断が付かないと感じたためである。己のキャパをオーバーしているような問題は、さっさと頭のいい人達や上司に相談した方がいいというのが、彼女が仕事で学んだことだ。
「んで、相談したいことなんですが。プログラミング魔法でチェックして貰うのに一番いい方法って、どういう方法だと思います? これ、繰り返し処理だけに絞るべきか、プログラムの予約語みたいなものにしておくかで、議論になりそうな気がしたんですけど」
ああなるほど。と、IT知識にも通じている研究者は頷いた。一方で、そちらの知識に疎いらしい人達は、首を傾げる。
「つまり、繰り返し処理だけに絞ると。プログラミング魔法でも、繰り返し処理を使ったものだけをチェックするようになる訳です。一方で、予約語をチェックするのなら、それが何だろうと、プログラミング魔法が込められたものならチェックされることになります」
『すみません。 予約 言葉 何か 教えて 欲しい?」
「ああ、すみません。そこは説明が必要ですね。予約語っていうのは、プログラムを書くときに、予めそのプログラム言語では特定の意味を持つ事が決められている文字列になります。例えば、それこそ繰り返し処理なら――」
佐上は黒板に繰り返し処理のコードを書いていく。つまりは、以下のようなイメージなのだと。
-------------------------------------
for (int i = 0; i < 1000; i++;) {
}
-------------------------------------
「このコードですが、人が分かる言葉に直すなら。『数値型でiという名前の変数を初期値0で宣言します。そのiという変数が1000未満の場合は繰り返し処理を行います。一度繰り返し処理を行うと、iは+1されます』という具合になる訳なんやけど。この、『繰り返し処理をします』という意味を持つ『for』や、『数値型で変数を宣言します』という意味の『int』が予約語というものになります。プログラム言語には、こういう、予め意味を持っていて、開発者がそれ以外の意味では勝手に使うことは出来ないようになっている文字列というものがあります。それが予約語というものです。だからこんな風に――」
今度は、佐上は以下のようなコードを書いた。
-------------------------------------
for (int for = 0; for < 1000; for++;) {
}
-------------------------------------
「こんな風に書くと、この処理は数値型でforという名前の変数を初期値0で宣言します。そのforという変数が1000未満の場合は繰り返し処理を行います。一度繰り返し処理を行うと、forは+1されます』という具合に見えます。けれど、これはプログラムの構文としてエラーなので実行出来ません。何故なら、繰り返しの意味を持つ方のforなのか、変数の意味のforなのか、区別出来なくなってしまうからです」
さきほど、首を傾げていた人達も納得したらしい。ふむふむと頷いた。
『つまり プログラミング 魔法。魔法 意思 for 入る。それ 調べる。繰り返し処理 ある 分かる 確認』
「その通りです。ただ、繰り返し処理をするのはプログラム言語によって少し書き方違っていたりもしますし。果たしてforやwhileのような、繰り返し処理の予約語だけをチェックするのでいいのか? むしろ、それは問題の無い繰り返し処理までチェックされないか? 逆に、色々な予約語をチェックの対象としておいて、どんなプログラム言語だろうと確認が出来る様にしておくべきか? 管理する方法として、何が適切なのか、うち一人ではとても答えが出せそうにないなと。つまりは、そういう訳なんです」
いやもう、だから全部頭のいい人達が決めて下さいと。それが、佐上の正直な想いだった。
『管理 目的 なら 少ない 労力 最大 確認 一番 いいです』
『プログラム 魔法 今 使う 考え 無い。チェック 範囲 多すぎる。まだ 分からない 話』
『それなら 今、プログラム魔法 すべて 確認 出来る 選択 良い 予想』
『その方法 色々 プログラム 予約 言葉 確認 対象 する。実現 可能 推測』
そんな彼らの会話を眺めていて。あれ? これあっさりと決まっちゃう流れなんかなあと佐上は思った。
要点を聞くと、どれももっともで、ある意味でどうして自分はこんな事にもすぐに気付けないのかなあと。少し凹んだ。
「ええと? ひょっとして、これもう答えが出ている感じなのでしょうか? つまりは、色々なプログラム言語の予約語をまずはチェックの対象としてしまって、どんなプログラム言語を使ったプログラミング魔法だろうと、当面は管理の対象としてしまおうみたいな?」
その通りだと、彼らは頷いた。
『勿論 あくまでも 方針。よく考える 問題 気付く 可能性 ある。だから、決定は また 後になる と思う。皆さん どうですか?』
研究者の一人が訊くと、それに対しても異論は無いと彼らは頷いた。
居心地の悪さを感じて、佐上は頭を掻いた。
「ええと。何というか。すみません。こんなすぐに決まるような話で、わざわざお呼び立てしてしまって」
『否。これ 大切な 話。きちんと 伝えて 助かる。ありがとう』
「そ、そうですか? そういって貰えると、うちとしてもホッとしました」
強張りながらも、佐上は笑みを浮かべた。
『しかし、そうなると。予約語 使う 色々な プログラミング魔法 サガミ 施す。多分 必要。サガミ 協力を お願い したい』
「ああ、そうなりますね。それは構いません。協力させて貰います』
広域破壊魔法兵器拡散防止機構の人も手を挙げた。
『私達 プログラム 詳しく 知りたい。教えて 欲しい。協力 お願い』
「分かりました。それも、そうかも知れませんね。外交官の人達に相談してみます」
『あと、本当に 予約語 確認 可能 実験 必要』
「ああ」と。研究者達から声が漏れた。
どうやら、まだまだ問題は山積みのようである。




