Diferansiyellerin, yamaların ve birleştirmenin kategori-teorik tedavisi?


14

Kabaca böyle görünen bir yamalar kategorisi var mı:

  • Nesneler bazı temel alfabe dizeleri
  • Morfizmler, dizeler arasındaki düzenleme komut dosyalarıdır ("diffs" veya "yamalar")

Bu sorularla ilgileniyorum:

  • Minimal düzenleme komut dosyası için kategorik bir kavram var mı ? Belki de yamalar kategorisi PO Setlerde zenginleştirilmiştir?
  • Is birleştirme kategorik dışarı ittirme yamaların?
  • Bunu dizelerden ağaçlara (dosya sistemi veya cebirsel veri türü) nasıl genelleştirebilirim?

1
Sen bir göz isteyecektir arkasındaki teori Darcs VCS
Bergi

1
... ya da daha yeni bir Darcs yaratma girişimi olan Pijul . (Ve o konuşmadan hatırladığım kadarıyla, birleştirme fark kategorisinin "serbest tamamlanmasında" pushout'tur.).
phipsgabler

Yanıtlar:


15

Martin'in işaret ettiği gibi , yamaların kategorik temsili üzerinde bazı çalışmalar var. Mimram ve Di Giusto'nun "Kategorik Yamalar Teorisi" tarafından kullanılan en kapsamlı kategorik yaklaşım UNIX diff.

Onların anlamında, istediğiniz her şeye sahipsiniz. Nesneler, bir A alfabesi olarak görülen alfabesi üzerinde sonlu kelime dizileridir ; burada , elemanlı kümeyi belirtir . ve arasındaki ok , kısmi artan haritalamadır . Enjekte edilebilirlik ve artış, kopyaların asla birbirinin üzerinden geçmediğini göstermek için vardır . Tüm detayları kağıt üzerinde bulabilirsiniz .LA:[n]L[n]nA:[n]LB:[m]Lf:[n][m]

Evet, birleştirme yukarıdaki kategorinin serbest tamamlanmasına itici olarak görülmektedir. Yapımımıza birleşme çatışmaları eklediğimizden emin olmak için tamamlanmaya ihtiyacımız var. Her zaman bir birleşme söz konusu değildir.

İkinci sorunuz üzerine, iki ana nedenden ötürü minimal düzenleme komut dosyası kategorik kavramı yoktur.

  1. Düzenleme komut dosyaları tüm şekil ve formlarda gelir. Bazı yazarlar ekleme, silme ve kopyaları dikkate alırken, bazı yazarlar sübstitüsyonları da işlem olarak eklemeyi sever. İplerden ağaçlara kadar genelleme yaptığınızda, diğer işlemlerin bolluğu mümkün hale gelir.

  2. Daha da önemlisi, minimum maliyetli düzenleme komut dosyaları benzersiz değildir. Dosyayı al dönüşümleri öyle içine bir yama, ve yazma . Bunu yapan minimal düzenleme komut dosyası nedir? İki tane! Bir kez daha, ağaçlara genelleme yaparken, "minimalite" kavramının kuşkulu olduğu daha da fazla durum bulunabilir.abba

Düzenleme komut dosyalarını ağaçlara genelleme konusunda çok çalışma yapıldı. Bu, iki ana çalışma organına bölünmüştür:

  • Türsüz Ağaçlar : Yalnızca s ifadelerini düşünün. İki ağaç arasındaki ağaç düzenleme mesafesi, adı geçen ağaçların ön siparişi geçişi arasındaki dize düzenleme mesafesidir. Bazı bibliyografyaları Demaine ve ark. veya Pawlik ve Augsten gibi.

  • Yazılan Ağaçlar : Soyut Sözdizimi Üzerindeki Yamalar Nesnenin iyi tipliğini koruyacağı garanti edilen ağaçlar, yani bir yama uygulamak her zaman geçerli bir AST verecektir. Yazılan şemsiyenin altında, dikkate alınabilecek daha az düzenleme işlemi vardır. Örneğin ikame mantıklı değil. Bununla birlikte, Lempsink ve ark. Tarafından ağaçların ön sipariş geçişi üzerinde bir fark vardır . daha sonra Vassena tarafından genişletildi . Şu anda, daha önce işaret ettiğim problemler için en son çalışmalarımız veya "yamalanmış" değerlerin yapısından faydalanmaya çalışan bazı önceki çalışmalar gibi düzenleme komut dosyalarından uzaklaşan yaklaşımlara odaklanıyorum .

Her iki durumda da, ağaç yapılı yamaların kategorik olarak dikkatli bir yorumunu görmedim.


Müthiş cevap! Ancak neden yalnızca benzersiz olmadıkları için minimal düzenleme komut dosyalarının kategorik bir fikri yok? (Co) sınırları da benzersiz değildir, sadece izomorfizme kadar.
Turion

Sanırım tamamlamayı alıp çatışmaları dahil edebiliriz, ya da sadece pushoutların her zaman var olmadığını ve var olmadıklarında bir birleşme olmadığını söyleyebiliriz?
Turion

1
@Turion, izomorfizme kadar benzersizlik oldukça güçlü. Düzenleme komut dosyalarında buna sahip değiliz. Bu oldukça zor tanımlamak için yapar arasındaki oka ve asgari düzenlemek komut dosyası olarak. Bunun yerine, en azı bulduğunu söylüyor , ancak model herhangi bir düzenleme komut dosyasını ve arasında bir ok olarak değerlendirecektir . Kompozisyon, örneğin başka bir sorundur. En az düzenleme komut dosyalarının bileşiminin en az olduğu garanti edilmez. Diğer yorumda evet, bazı birleşmelerin mevcut olmadığını söyleyebiliriz. Ama hesaplar. Bu, çatışmanın ele alınmasını modelden tamamen kaldıracaktır. B A BABdiffABdiff3
Victor Miraldo

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.