どのタイプのプログラミングが実用的なカテゴリー理論を必要としますか?


8

カテゴリ理論は理論的なコンピュータサイエンスに応用でき、明らかに抽象数学の中心です。また、プログラミングやソフトウェア開発に直接実用化されていると聞いています。

実用的なカテゴリー理論はどのタイプのプログラミングに必要ですか?プログラマーはカテゴリー理論を使用して何を達成しますか?

この投稿での「必要」と「必要」の使用に注意してください。ある意味では、ほとんどのプログラマーがさまざまなタイプの理論の経験を持つことで利益を得ると思いますが、カテゴリー理論の使用が不可欠である直接アプリケーションを探しています。やれ。

また、「プログラミングの種類」によって明確にしたいと思います。「関数型プログラミング」のような幅広い答えではなく、「銀行ソフトウェアの作成」や「オペレーティングシステムの作成」のような特定のアプリケーションについては望んでいません。


2
私は最高の一つだと思う(しかし、容易ではない、あなたがFPに新しいしている場合)プログラミングにおけるカテゴリの理論的な思考は非常に有益である理由の説明をされstackoverflow.com/questions/16015020/...は
エリックKaplun

2
これは良い抜粋です:「[...]数学の一般的なパターンであり、コードで行ったように、「除外」されています。人々は、前述のモノイド、グループ、ラティス、およびなど、すべて同じようなパターンに従っているので、彼らはそれを抽象化しました。これを行うことの利点は、プログラミングと同じです。再利用可能な証明を作成し、特定の種類の推論を容易にします。」
エリックカプルン2014

「ソフト」でコンセプチュアル。私は質問を閉じるために投票する心を持っていません。なぜなら、私はそれがちょっと好きだからですが、もし望むなら、ええと、移行のフラグを立てることができます。おそらくそれを単に削除してプログラマーに尋ねる方が簡単でしょう。
Michael Petrotta 2014

1
@MichaelPetrottaフラグを付けて、Erikのコメントが失われないようにします。

回答:


3

問題は、非常に実用的な答え(特定のアプリケーション)を期待しながら、抽象的な数学的概念(カテゴリー理論)について尋ねることです。すべての敬意をもって、これは非現実的な期待だと思います。

数学の抽象的な概念は、アプリケーションではなくプログラミング言語の基礎の一部です。たとえば、データ型はプログラミングの中心です。すべての言語には、何らかの形式のデータ型があり、型システムを実装しています。静的か動的か、強いか弱いか、明示的か暗黙的かなどです。しかし、標準はありません。

したがって、多くのコンピューター科学者は、カテゴリー理論を使用して統一型システムを定義しようと試みてきました。例えば萩野さんのために参照してください言語プログラミングカテゴリ(1987)とチャリティー(1996)、その後、ML(2003)、CAML、およびハスケルの種類の「Haskellのカテゴリ」を定義もちろん、およびHaskellの関数は、タイプの射ています...

これは、型理論がカテゴリー理論と密接に関連しているためです。JL Bellを引用すると、「カテゴリー自体は特定の種類の型理論と見なすことができます...したがって、型理論は集合論よりもカテゴリー理論にはるかに密接に関連しています...大まかに言えば、カテゴリーは型理論がその構文の足かせとして」たとえば、デカルトの閉じたカテゴリは型付きの λ計算に対応し、Cモノイドは型なしの λ計算に対応することが示されています...

私は圏論があるとは思わない、必要なプログラミングのあらゆるタイプのために、それはある非常に便利なツール ESPプログラミング言語の設計と実装では、と。本質的に数学的なもの。そのため、関数型プログラミングはカテゴリ型プログラミングとしてよく引用され、上記のすべてのプログラミング言語はFP言語です。

トピックへの推奨される導入は、BC Pierce(1988)による「コンピューター科学者のためのカテゴリー理論の味」です。これとその他の有用な情報は、mathoverflowに関する同様の議論で見つかりました。


「すべての敬意をもって、これは非現実的な期待だと思います。」:なぜですか?たとえばオンラインバンキングの暗号化など、抽象的な数学的概念の非常に実用的なアプリケーションの他の例があります。
ジョルジオ

1
暗号化は抽象的な数学的な概念ではありません。それは非常に具体的です:他の人へのあなたのコミュニケーションを理解するのを一部の人々に阻止します。
オクルス2017

-2

銀行にとっては組織モードのようなものです。

あいまいだと思いますが、実用的な答えが欲しいと言っていました。

選択の公理のため、カテゴリーはすべて双対性(または少なくともそれが私の見方です)なので、個人的には、型自体(のインスタンス)がタイプ)は基本的にカテゴリです。

単純に型付けされたラムダ計算には公理型システムがないため、型理論の基礎であると言われています。これは、適切な型システムを使用するラムダ計算とは異なります。

単純に型付けされたラムダ計算は強く正規化され、型のマッチングはかなり退屈ですが、ロジックは健全です。

また、無限/依存して型指定されたラムダ計算(または純粋に型指定された)は、すべての型の型を持っているため、適切に正規化されません。

カテゴリはどこにでもありますが、すぐに見ることは本質的にほとんど不可能です。


1
「銀行にとっては組織モードのようなものです。」私はくすくす笑いましたが、理解できません。
抜粋
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.