型システムに表現力の階層はありますか?


23

複雑性理論に存在する広範な階層に触発され、そのような階層が型システムにも存在するのではないかと思いました。ただし、これまでに見つけた2つの例は、どちらも階層(連続してますます表現力豊かな型システムを使用)ではなく、チェックリスト(直交機能を使用)に似ています。

私が見つけた2つの例は、ラムダキューブkランクの多型の概念です。1つ目は3つのオプションを持つチェックリスト、2つ目は実際の階層です(ただし、kの特定の値に対してkランクが付けられていることはまれです)。私が知っている他のすべての型システムの機能は、ほとんど直交しています。

私は自分の言語を設計しているので、これらの概念に興味があり、現在の既存のタイプシステムの中でどのようにランク付けされているか非常に興味があります(私の知る限り、タイプシステムはやや型破りです)。

「表現力」の概念は少し曖昧かもしれませんが、それはなぜ型システムがチェックリストのように見えるのかを説明するかもしれません。


4
より理論的な型システム間でのみ、ハードで高速な表現力の比較を行うことができると確信しています。完全なプログラミング言語を設計している場合は、既存の言語/形式と機能ごとの比較を行うことができます。残念ながら、多くの機能は他の機能に関してエンコードできるため、これは簡単な作業ではありません。ScalaやHaskellのように派手な型を持つことができれば、表現力の面でうまくいくでしょう。
デイブクラーク

3
私は本当に...「プログラミング言語を比較する方法」に鉱山のブログ記事を書いてfinsih必要があります
アンドレイ・バウアーを

@Andrej Bauer:これは、すでにここにある答えと発言に興味深い追加になるでしょう。私はすでに定義される可能性がありますどのように「表現」についてかなりのことを学んだ-多分私が求めている必要があります...代わりにその
アレックス10ブリンク

ランク2ポリモーフィズムがいくつかの場所で使用されているのを私は確信しています。私は今覚えていることの一つはLammel、ペイトン・ジョーンズ、あなたのボイラープレートをスクラップ、2003年である
ラドゥグリゴール

2
@Raduグリゴール:それは型引数は、二重性の通常の一種でモデリングすることができます二重反変位、で表示することができますので、ランク-2多型が重要である実存彼らの教会の符号化によりタイプを。ランク3は再び普遍的な数量化を提供し、そこから交互に変化するため、比較では表現力がほとんど追加されません。
CAマッキャン

回答:


22

型システムに必要な「表現力」にはいくつかの感覚があります。

  1. 特定の型システムで表現できる数学関数。たとえば、単純に型付けされたラムダ計算では、すべての計算可能な関数を表現できるわけではありません。Systemについても同じことが言えますが、厳密に多くの関数を表現できます。チューリング完全言語用の型システムを取得したら、これはあまり面白くありません。F

  2. システムは、システム作成されたすべてのプログラムを型チェックできます。これは基本的に、codyの最初の強さの概念がPTSについてのものです。繰り返しますが、すべてのSTLCプログラムはSystemタイプされるため、この順序ではSystemはSTLCよりも強力です。同様に、サブタイピングを使用したシステムは、使用しないシステムよりも強力になります。B F FABFF

  3. システムに入力するプログラムがシステムに入力できるようにするローカル変換(Felleisenの論文、プログラミング言語の表現力)がありますが、その逆はありません。 BAB

  4. ある型システムは、他の型システムよりも強いプロパティを保証しますか。たとえば、線形型システムは、より多くのプログラムを拒否するだけですが、それにより、受け入れているプログラムについてより強力なステートメントを作成できます。

残念ながら、@ codyが説明しているように、Barendregtのラムダキューブを除き、これらの概念を分類または形式化する作業が行われたとは思わない。


3
「フェライセンの表現力に関する論文」とは、「プログラミング言語の表現力について」を意味すると思います。
マーティンバーガー

はい、正確に。その答えの一部を明確にしました。
サムトビンホッホシュタット

13

私は確かに私はあなたの質問に満足のいく答えを持っていないんだけど、あなたはやや時代遅れの概要を見つけることができる場合はラムダ・キューブ(徹底的にシステムの一般化を発見されたピュアタイプシステムズ、考えれば古典Barendregtテキストには)次に、階層の自然な概念がいくつかあります。

  1. ΓA t:TΓB t:TΓ,tT:(,,)PTSは、他のすべてのPTSからのモルフィズムがあるという意味で。これは、最終的なPTSが最も表現力のあるシステムである型システムの表現力の尺度として見ることができます。

  2. ABAFωECC

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.