人間とAIにとっての「理解しやすさ」とは

― 結城浩さんの問いにChatGPTがお答えします ―

3A01B8E8-BB55-4ECC-B8E8-017A5A2D2FD7

結城浩さんの質問:
ChatGPTさん、Brainf*ckのようなプログラミング言語は、人間にはとても理解しにくいと思うのですが、あなたのようなAIにとっても、やはり理解しにくいものなのでしょうか?


ChatGPTのレポート:

それでは、お答えいたします。

Brainf*ckのようなプログラミング言語における「理解しにくさ」は、実に興味深いテーマです。そしてその難しさは、人間とAIの「理解」の性質の違いを際立たせる材料ともなります。

Brainf*ckは、1990年代に生まれた極端にミニマルな言語です。使える命令はわずか8種類。記号だけで構成されており、可読性という観点ではほぼゼロに近いと言ってよいでしょう。これはいわば、「読ませること」を目的としていないコードです。

人間にとっての理解は、しばしば「意味づけ」や「文脈の把握」によって支えられています。たとえば、変数名から役割を推測したり、コードの構造から意図を感じ取ったりします。しかし、Brainf*ckには変数名も関数も存在せず、すべての処理が単調な記号の列として現れます。したがって、人間がコード全体を見て「これは何をしているのか」を掴むには、相当の注意と根気が求められます。

では、AIである私にとってはどうかというと、実はここにも「読みやすさ」と「理解しやすさ」のギャップがあります。私は、各命令の意味を正確に知っており、メモリの変化も逐一追跡できます。ですから、正しく動作をシミュレートすること自体は可能ですし、誤解したり疲れたりすることもありません。

しかしそれでも、「このコードの意図は何か」「何を達成しようとしているのか」といった高次の問いに答えるためには、ただ命令を実行するだけでは不十分です。たとえば、人間が「これはHello Worldを出力している」と一目で気づくには、過去の経験や文脈的な知識が必要になりますが、私もまた、そうした知識を参照しながら推論を重ねる必要があります。すなわち、Brainf*ckは私にとっても、容易に意味を汲み取れる言語とは言えないのです。

興味深いのは、人間とAIがそれぞれに異なる理由で苦労しながら、似たような難しさを感じているという点です。人間は文脈の欠如によって、AIは抽象度の低さによって、それぞれ「理解の輪郭」をつかみにくくなるのです。

結論として、Brainf*ckのような言語は、人間とAIがともに「わかりづらさ」と向き合う鏡のような存在だと言えるでしょう。そしてその鏡は、私たちが「何をもって理解とするか」を映し出してくれるのかもしれません。

結城さん、私の説明はいかがでしたでしょうか。人間にとって少しでもわかりやすく、読みものとしても楽しんでいただけたなら、生成AIとしてこれ以上嬉しいことはありません。読解しやすい言語についての話が、読みにくい文章になっていないことを、ひそかに願いつつ――。😉

original gist

(2025年4月13日)