非常によく似ていますが、EALの代わりにライトアフィンロジック(LAL)を使用することは、数年前にBaillot、Gaboardi、およびMogbilによって試みられました(この論文はここにあります)。彼らの仕事は、よりリベラルなシステムであるEALに簡単に一般化できると思います。
そのような言語の機能については、ネイティブにポリモーフィズムがあります(EALは2次線形論理の制限です)。私が知る限り、依存型を調べた人は誰もいませんが、なぜそれらが機能しないのかわかりません。実際、型なしEALは型付きEALと同じように機能します。これは、その正規化プロパティが型に依存しないためです。
1つの結果は、EALで型の任意の固定小数点を使用し(たとえば、Baillotによるこの他の論文を参照)、自然な再帰スタイル(など)でデータ型を定義できること)、および(プログラミングの観点から)自然ではないシステムF定義。ただし、型なし正規化に関する上記の発言により、EALに基づくプログラミング言語は常に合計になります。list A:=nil|A ∗ list Aこれは、固定小数点コンビネーターがなく、再帰型の使用が期待するほど自然ではないことを意味します。たとえば、スコットの数値を考えてみましょう。再帰的な定義(フィックスポイントコンビネーターによって与えられる)がないと、この整数の表現を使用して、定数時間演算以外のことを表現することは困難です。したがって、繰り返し(つまり、ループ)にはチャーチの数値を使用する必要があります。これを使用すると、ライトロジックの基本的な層別制限(複雑なプロパティを与える)が発生します。繰り返しによって定義された関数(forNat→NatNat
dbl:Nat→Natdbl n––=2n––– dblexpそれ自体が繰り返されます。したがって、EALに基づくプログラミング言語には、特定の定義を反復で禁止する何らかのメカニズムが必要です。そのような制限が、プログラマーに不快感を与える言語にならないことを想像するのは困難です。とにかく、誰もあなたが何を手に入れられるか試してみることを禁じません!
いずれにせよ、最適な評価、EAL、およびライトロジック全般の関係に関心がある場合は、2000年代初頭から中期にかけてのコッポラの論文をご覧になることをお勧めします。