多田富雄「免疫の意味論」という本がある。新型コロナの中で、あらためて意味論を考えてみた。それではプログラムはどうか。そこにあるのは形式だけではないのか。「男の子が2人と女のが3人います。あわせて何人ですか。」という質問に2+3=5だから5人ですという解答に疑問はないのか。それでは「一万円札が2枚と千円札が3枚あります。あわせて何枚ですか。」という質問にも2+3=5だから5枚ですと答えるのだろうか。計算が正しくても、それだけでは意味がないかもしれない。意味のないプログラムでいいのですか。

現代のプログラミング言語はALGOL系と呼ばれている。それらはチョムスキーの生成文法を基本にしている。問題はチョムスキーは意味に興味がないことである。またリレーショナルデータベースは徹底的にフォーマルな発想から生まれたものである。逆に言うと意味論は除外されている。これらをベースにして開発したシステムで意味のあるプログラムを作ることができるのだろうか。

これらが作られた時にはチューリングはこの世の人ではなかった。もしチューリングが生きていたら事態は違っていたかもしれない。なんて話はともかく、チューリング・テストとは「人間と機械を区別できるか」という問題提起だと思うので、それは意味論の世界ではないかと思う。また形式言語理論ではチョムスキーの生成文法とチューリングのオートマトンは同値であるが、それは形式的にはという意味である。意味論としては違ってくるのではないだろうか。

そこで思うのだが、生成文法の中に意味論を盛り込むのは難しいとしてもオートマトンに意味論を盛り込むのは可能ではないだろうか。つまり、オートマトンに人格を付与するというか、あるいはゲームのキャラのようにするとか、あるいは役割を持たせて配置するというか、まあそういう手法で意味論をプログラムに盛り込めるのではないかと思うのである。それとも意味論に意味はないだろうか。