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

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

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

エラーが発生しました。

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

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

プログラム魔法実験

 地球上のプログラム言語を組み込んで、異世界の魔法を起動し、制御するような真似は可能なのか?

 その答えは、思ったよりも早く出た。

 答えを言えば、可能だった。


 実装した魔法の概念。というと、些か大袈裟ではあるが、それは次のような具合だ。

 異世界の魔法を一つの処理の塊。つまりはプログラムで言うインスタンスや関数のように見立て、それを地球上のプログラミング言語の概念で挟んだだけである。


 つまりは具体的に書き起こすのなら、こんな感じである。

 元々の魔法というものが、このように実装されていたとする。


---------------------------------

【元々の魔法】 ※魔法Aとする。

 <処理開始 ※魔法意思>

 

 魔法A {

  現象発現

 }


 <処理終了 ※魔法意思>

---------------------------------


 実験では、これを次のようにしてみた。

 この場合、魔法Aは、プログラム言語とは別の領域で実装されている。


---------------------------------

【実験用魔法(仮)】

 <処理開始 ※プログラム言語>


 実験用魔法 {

  魔法Aを実行

 }


 <処理開始 ※魔法意思>

 魔法A {

  現象実現

 }

 <処理終了 ※魔法意思>


<処理終了 ※プログラム言語>

---------------------------------


 こんな具合に、直接的に魔法の実行処理を行わせるのではなく。「魔法Aを呼び出す」「呼び出された魔法Aが現象を発現させる」という間接的なやり方で、魔法を実行しているのだ。

 仮に、魔法意思をある種のプログラム言語だったとして、お互いに全く違う言語を混ぜて、そんなものが実行出来るのかというと、それが出来てしまった訳である。


 ここからは、少し専門的な話になってしまうが。確かに、(一見すると)こういう1つのプログラムの中に、別の言語が混じるという状態は実在している。

 例えば、インターネット上のとある画面で、ボタンを押したら処理が行われるというのは、よくある動きだ。しかしこれは、裏では結構色々な言語が噛み合って出来ている。


 画面の基本的な部分をHTMLという言語が。画面の各部品の装飾をCSSが。画面側での実際の処理は、JavaScriptが行っていたりする。ちなみに、これはほんの一例であり、他にも画面の実装方法というのは様々有ったりする。

 サーバ側での処理も、複雑な処理はJavaのような言語が。DBにアクセスするのにはSQLのような言語が。より単純だったり、OSに依存した処理を任せたいところはコマンドを並べたバッチファイルを作ったりする。


 そして、これら別々の役割を持った言語に処理を受け渡したり、呼び出したりするために、実装しているプログラムファイルの中には、別のプログラムが混ざっているような状態になるのだ。

 ただ、流石にこんな実験用魔法のように、間に何も挟むこと無く、全くの地続きで別の言語を呼び出せるような真似というのは無いが。


 この実験に協力した佐上は、半信半疑ながら、学者先生達からやってみたい仕様を聞いて、実装してみたのだが。正直言って、この結果には引いた。彼女のIT知識の常識には無い結果だったからだ。

 何語で言おうが、魔法は実行出来るというのだから、魔法の言語に対する汎用性みたいなものは、相当に高いとは考えられていた訳で。可能性としては有り得るとも思っていたが。

 ちなみに、「ものは試しに」と依頼した学者達も、この成功には割と引いていたりする。


 本当に結果に間違いはないのかというと、実際に佐上が実装した魔法はこんな具合だ。処理順でいけでまず「灯り魔法を実行」の部分が処理され、そこから呼び出された「灯り魔法」が「光を発する」を実行する。最後に、「『灯りが点いた』を脳内に表示」して終了となる。


---------------------------------

【実験用魔法(真)】

<処理開始 ※プログラム言語>


 実験用魔法 {

  灯り魔法を実行

  「灯りが点いた」と脳内に表示

 }


 <処理開始 ※魔法意思>

 灯り魔法 {

  光を発する

 }

 <処理終了 ※魔法意思>


<処理終了 ※プログラム言語>

---------------------------------


 間接的に、灯りを点ける魔法を呼び出しており。その後に「灯りが点いた」と脳内にイメージが浮かび上がるように実装している。

 これが、途中で処理が失敗しているのなら、灯りが点付かなかったり、仮に灯りが点いても魔法処理の後続にある「灯りが点いた」というイメージも出てこなかったりするはずだ。


 そして、実際に灯りは点いて、実行者の頭には「灯りが点いた」というイメージが湧き上がっている。

 つまりは、一連の処理が最初から最後まで正常に実行されたという可能性が高い。

 実は実装したイメージ通りに動いていなくて、「灯り魔法の実行」「灯りが点いたとイメージ」という処理順ではなく、両者が並列に、同時に処理されてしまっているという可能性もあるが。


「ええっと? こんなん出来ましたけど。次は、どないします?」

 冷や汗を流して、佐上は灯りを指さした。

 続いて興奮した表情で、学者達は口を開いた。

次回も、プログラム魔法の実験についての予定です。

それに伴って、サブタイトル変わるかも?

例年の通り、一月からは投稿ペースを戻す予定です。


あと、先週から「ソルの恋」なるものを連載しております。

こちらは、3章(60話くらい)あたりまで、一日一話のペースで投稿の予定です。

よろしければ、下のリンクからこちらもお読み頂けると、ええそりゃもう本気で嬉しいです。

場合によっては、タイトル変更するかもですが。


2022/07/02追記

あう、感想頂いて修正したつもりだった内容が、何故か長いこと修正されていなった。

ちゃんと、修正が反映されたことを確認までしないとダメで拗ねこれ。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
[気になる点] 読み返していて気になったので……。 > 画面の基本的な部分をHTML(※2021年現在はHTML5が主流)という言語が。画面の各部品の装飾をCSS(2021年現在ではCSS3が主流)…
感想一覧
+注意+

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

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

↑ページトップへ