おおよそ次のようなパッチのカテゴリがあります。
- オブジェクトはいくつかの基本アルファベットの文字列です
- モーフィズムは、文字列間の編集スクリプト(「差分」または「パッチ」)です。
私はこれらの質問に興味があります:
- 最小限の編集スクリプトのカテゴリ概念はありますか?パッチのカテゴリはPOセットで充実しているのでしょうか?
- さマージカテゴリプッシュアウトパッチの?
- これを文字列からツリー(ファイルシステム、または代数データ型)に一般化する方法は?
おおよそ次のようなパッチのカテゴリがあります。
私はこれらの質問に興味があります:
回答:
Martinが指摘したように、パッチのカテゴリー表示に関する作業がいくつかあります。Mimram and Di Giustoの「パッチのカテゴリ理論」は、で使用されてUNIX diff
いる編集スクリプトへの最も広範なカテゴリアプローチです。
彼らの意味では、あなたはあなたが望むものを持っています。オブジェクトはアルファベット上の単語の有限シーケンスであり、マッピングとして表示されます:[ n ] → L、ここでは要素の集合を示します。と間の矢印は、単射部分増加マッピング。単射性と増加は、コピーが互いに交差しないことを示すためにあります。あなたは紙ですべての詳細を見つけることができます。
はい、マージは、上記のカテゴリの無料の完了に関するプッシュアウトと見なされます。マージの競合をコンストラクションに確実に追加するには、補完が必要です。マージが常に存在するわけではありません。
2番目の質問では、2つの主な理由により、最小限の編集スクリプトのカテゴリ概念はありません。
編集スクリプトには、すべての形状と形式があります。一部の著者は、挿入、削除、およびコピーを検討します。一部の著者は、操作として置換を追加することも好みます。文字列からツリーに一般化すると、他の多くの操作が実行可能になります。
ただし、さらに重要なことは、最小コストの編集スクリプトは一意ではないということです。ファイル、それを変換するパッチを作成します。これを行う最小限の編集スクリプトは何ですか?二つあります!繰り返しますが、木に一般化するとき、「最小性」の概念が疑わしいさらに多くの状況を見つけることができます。
編集スクリプトをツリーに一般化する作業はたくさんありました。これは、2つの主要な作業に分割されています。
型付けされていない木:S式のみを考えてください。2つのツリー間のツリー編集距離は、前述のツリーの事前順序走査間の文字列編集距離です。Demaineらによる参考文献を確認できます。またはPawlikとAugstenなど。
型付きツリー:オブジェクトの適切な型付けを保持することが保証されている抽象構文ツリー上のパッチ。つまり、パッチを適用すると、常に有効なASTが生成されます。型付きの傘の下では、考慮することができる編集操作が少なくなります。たとえば、置換は意味がありません。それにもかかわらず、Lempsink et al。によるツリーの事前順序走査に関する差分が存在します。、後にVassenaによって拡張されました。私は現在、最新の作品や、「パッチを当てる」値のタイプの構造を利用しようとする以前の作品など、以前指摘した問題に対して、編集スクリプトから距離を置くアプローチに焦点を当てています。
いずれの場合も、ツリー構造のパッチの慎重なカテゴリー的解釈は見ていません。
この方向にはかなりの作業があります。[1、2]を見ることから始められますが、トピックを使い尽くすことはありません。
S.ミムラム、C。ディジュスト、パッチのカテゴリー理論。
C.アンギリ、E。モアハウス、DRリカタ、R。ハーパー、ホモトピックパッチ理論。