osiire’s blog

ふしぎなそふとやさん

ふと想うんですが、ある言語の「表現能力」ってうまく厳密に定義できないものですかね。それがあると言語の比較に便利じゃないですか。それが同型なら同じ表現能力と言えると。もちろんチューリング完全とか持ち出すとフラット過ぎるので、それはなしの方向で。もしかして常識?論文嫁?
例えば、アセンブラの変数には数字しか入らないじゃないですか。でも、少し高級な言語になると文字列も入ります(実質的にはポインタという数字しか持っていなくても、プログラマには文字列が入っているように見えます)。これは、なんか少し表現能力が高くなった気がする訳です。同様に、言語によっては、配列やリストやハッシュやセットやレコードやバリアントや関数やオブジェクトやS式や型やモジュールや証明を変数に入れることができます。要するに何が言いたいかというと、「第一級」さが「表現能力が高い」に関係している気がするのです。
一方で、expression problemが解決できる言語かどうかといった、単純に第一級さだけでは表しきれない「表現能力」もあると思うのです。
別に万人が納得できる定義とか、そーゆー言葉の問題じゃなくて、指標というか尺度というか。うーん、代数をまともに勉強していない私には無理ぽ。