カテゴリー理論の観点から先物または約束の有用な説明はありますか?特に、Futureのカテゴリデュアルはどうなりますか?
カテゴリー理論の観点から先物または約束の有用な説明はありますか?特に、Futureのカテゴリデュアルはどうなりますか?
回答:
それが起こると、私は今これについて論文を書いています。IMO、先物や約束について考える良い方法は、時相論理のカリー・ハワード通信の観点からです。
基本的に、futureの背後にある考え方は、進行中の計算を表すデータ構造であり、その上で同期できるということです。一時的なロジックの面では、これが最終的に演算子である。:これは、モナドの構造を有する R E T U R N:A → ◊ A B I N D:(A → ◊ B)→ ◊ A → ◊ B におけるR E T U R nは
then
最終的にオペレータへのデュアル常に演算子である◻ Aあらゆる瞬間に、あなたが得ることを言う時相論理の、Aを。Kripkeの時相論理のセマンティクス(証明可能性をモデル化するだけ)からλ計算のカテゴリーセマンティクス(ラムダ項/証明もモデル化する)に渡すと、実際にはこれを行う方法が複数あることがわかります。
あなたがすることができる最も簡単な方法は取ることですあなたが持っている一度という理由で、、あなたは常にそれを持っています。これは機能しますが、退屈な感じです、IMO。:)
最も自然な(IMO)ことは、を取ることですこれにより、各瞬間に(潜在的に異なる)を取得できます。次に、先物を使用したデュアルからモナドのプログラミングスタイルとして、関数型リアクティブプログラミング(FRP)(Tarmo UustaluおよびVarmo Veneによって最初に提案された)の共流スタイルを見ることができます。A
しかし、彼らが示唆するような共通の -calculusは、その優雅さにもかかわらず、ストリームを使用した明示的なプログラミングに比べて表現力の深刻な損失を引き起こします。 、特に固定小数点。
ニックベントンと私は、「リアクティブプログラムのウルトラメトリックセマンティクス」の論文で、ストリームを使用した明示的なプログラミングについて議論しました。その後、アラン・ジェフリーは彼の論文LTL types FRPで型システムとしてLTLを使用することを提案しました。WolfgangJeltschも彼の論文で線形時間時相論理および機能的反応プログラミングのための共通カテゴリセマンティクスに向けた観察をしました。
ニックと私がとる見解と、アランとウルフガングがとる見解との違いは、Birkedalらの「合成ガードドドメイン理論の最初のステップ:トポスでのステップインデックス付け」で示された構造を比較することで最もよく理解されます(IMO)アランの紙で木の。木のトポス(サイズで順序付けられた自然数のプリシーブ)は、ニックと私が使用した超空間のカテゴリーに非常に似ていますが、これらは両方ともプリシーフであるため、Alanのカテゴリー(時間の離散カテゴリーにわたるプリシーブ)と比較するのがはるかに簡単ですカテゴリー。
並行性の先物に特に興味がある場合は、LTLではなくCTLを検討することをお勧めします。私の知る限り、それは現在未開拓の領域です!
編集:ここにドラフトへのリンクがあります。このペーパーは主に型付きFRPの実装に関するものなので、言語は同期的です。しかし、セクション3.3の先物/イベントの説明のほとんどは、基本的に真の並行言語にも同様に当てはまるはずです。
Try[T]
とFuture[T]
デュアルであることを読みましたが、これが何を意味するのか、どのような意味であるのか、私はまだよく理解していません。