![見出し画像](https://assets.st-note.com/production/uploads/images/32423690/rectangle_large_type_2_887b0b2d36cb9e261bab51f10442923c.jpg?width=800)
プログラミング言語は魔法の言葉(『白と黒のとびら』レビュー)
異世界ファンタジーが好きだ。
「ドラクエ」や「FF」の直撃を受けた小学校時代にきっかけがあることは確かだが、それ以上に、中高生の頃に読み漁った小説の影響が大きい。『指輪物語』に始まり、『エルリック・サーガ』に代表される「エターナル・チャンピオンシリーズ」、TRPG『ダンジョンズ&ドラゴンズ』の世界設定を下敷きに生まれた『ドラゴンランス』シリーズに、 2018年に30周年を迎えた『ロードス島戦記』シリーズ……。
物語やキャラクターが魅力的なのはもちろんだが、現実世界とは異なる世界を冒険する感覚がたまらない。言葉が創り上げる見たこともない世界、文化、宗教──現実には存在しないものが、この上なく〈リアル〉に感じられる時、湧き上がる自分の感情もまた、本物だと感じられる。
架空の世界に〈リアリティ〉を与えようとすれば、ディテールの作り込みが欠かせない。ファンタジーが人気ジャンルとなっているアニメやラノベの中にも、緻密な世界設定を売りにしているものが少なからず存在するし、そういう作品には、批評的な強度を備えた良作が多い。
その点からすると『白と黒のとびら』は奇妙な小説だ。
偉大な魔術師アルドゥインに弟子入りした少年ガレットの成長物語と説明すると、ヤマザキコレ『魔法使いの嫁』や白浜鴎『とんがり帽子のアトリエ』を思い浮かべる人もいるだろう。いずれも、魔法表現のディテールが実に魅力的で、それが世界の秘密と密接に繋がっているあたりが、鳥肌ものの作品だが、これらと比べた時に──漫画と小説という違いはあるが──『白と黒のとびら』の奇妙さはより一層際立つ。
プロローグで、アルドゥインはガレットに古代語の授業を行う。
「よいか、第一古代ルル語はその昔、西の森のあたりに住んでいた妖精たちが、神に祈りを捧げるときにだけ使っていた秘密の言葉だ。第一古代ルル語の文は、以下の五つしかない。
一つは、●●○。次は、○●○○●。
あとは、●○○●と、○●●○と、○○●●」
さらに、ガレットの質問に答えてアルドゥインはこう言う。
「あの、●と〇って何なんですか?」
「古代ルル語系の言語に共通して使われる文字だ。文字はこの二つのみ」
古代語の設定のディテールは? 文字が●と〇だけ?
アラン・チューリングを知っているだろうか。
『イミテーション・ゲーム/エニグマと天才数学者の秘密』を見た人も多いと思うが、チューリングマシンと呼ばれる自動計算機械の理論を構築し、コンピューターの基礎を作った人物である。
「形式言語」という概念がある。「言語」という名前はついているが、これはいわゆる「文字列の集合」に過ぎず、それが意味を成すか否かは関係ない。「こんにちは」はもちろん「あえういお」という無意味な文字列も「形式言語」に含まれる。
リューリングマシンが何をするかと言えば、この「形式言語」の記号を読み取り、一つひとつの記号の内容に応じて次の動作を決定する。と言えば、これが一般的に言われるアルゴリズムについての記述だとわかるだろうか。あるいは、この「形式言語」がプログラミング言語であると。
第一古代ルル語の五つの文は、「形式言語」の一種、「正則言語」に属するものだ。そして、このように限定された文だけを受理することができる計算機械のことを「有限オートマトン」と呼ぶ。
ガレットは、ある日、遺跡の調査を依頼される。アルドゥインから届いた手紙には、次のように記されている。
「『人喰い岩』は、千年以上前に各地で妖精が建てていた遺跡の一つだ。この手の遺跡には、各部屋に白と黒の二つの扉があり、それぞれの部屋で『正しい扉』を選ばなければ外に出ることができない。(中略)正しくない扉を選んでしまった場合にどういう運命が待っているかは、遺跡によって異なる。二度と戻れない遠い場所に移動させられることもあるし、命を奪われることもある」
そう。この遺跡自体が「有限オートマトン」そのものなのだ。
読者は、言語と遺跡の謎解きと、それを通じて成長するガレットの姿を楽しみつつ、プログラミングやAIの基礎理論を学ぶ上で欠かせない「オートマトンと形式言語」についての理解を深めることができる。
などと言いつつ、僕自身、どの程度まで理解できているのかは分からない。ただ、そんな門外漢であっても、ガレットの冒険に寄り添いながら、紙とペンを手にして一緒に謎解きを楽しむうちに、「オートマトンと形式言語」の魅力に取りつかれた。
とりわけ胸が躍ったのは、第11章で「偽クフ語の詩」と称して、次のような文が登場した時だ。
「(見出し1)●●○●○:
(文1)○○○●○○○●○○●○●●○●○●●○●○○●●●○●●●●○○●●。(文2)●●○●○●●○●○●○●●○●○。」
このような形で、見出し6、文18まで続いていく。
解読するための単語集はあるものの、それだけではどうにもならない。ガレットもアルドゥインにこう言っている。
「文を単語に『切り分ける』ことはいくらでもできそうですが、どの切り方が正しいのかを知る方法がないと、結局意味が分からないような気がします」
ところが、ここにもきちんと解読のための手順が存在する。ぜひ、本編を読み進めて、一緒に解法を導き出してほしい。
さて、このようなタイプの「形式言語」は「文脈依存言語」と呼ばれている。その解析方法を考えることは、プログラミング言語のような人工言語だけでなく、我々が日常的に使っている自然言語を、コンピューターがどのように解析するかということに関する、基本的なアプローチにもつながる。
数学や理論を物語仕立てで解説した本は、それこそ枚挙に暇がない。しかし、理論そのものを物語内の設定に落とし込み、なおかつ実際の理論の分かりやすい説明になっていて、さらに物語自体が良質のエンターテインメントとして完成されているなんていう作品、少なくとも僕は知らない。
なお、東京大学出版会のホームページでは、本書のプロローグと第1章のPDFファイルが公開されている。「第一古代ルル語」と「人喰い岩」の謎に挑みつつ、本書の魅力を感じてほしい。
すっかり書き忘れていたが、きちんと魔法も登場するのでご安心を。
鵜川 龍史(うかわ りゅうじ・国語科)
Photo by Markus Spiske on Unsplash
この記事が気に入ったらサポートをしてみませんか?