Apakah ada kategori tambalan yang kira-kira terlihat seperti ini:
- Objek adalah string dalam beberapa alfabet dasar
- Morfisme adalah skrip edit ("diffs" atau "patches") di antara string
Saya tertarik dengan pertanyaan ini:
- Apakah ada gagasan kategoris tentang naskah edit minimal ? Mungkin kategori tambalan diperkaya dalam PO-Sets?
- Apakah penggabungan tambalan merupakan pushout kategoris?
- Bagaimana cara menyamaratakan ini dari string ke pohon (sistem file, atau tipe data aljabar)?
Jawaban:
Seperti yang ditunjukkan oleh Martin , ada beberapa pekerjaan pada representasi kategoris tambalan. Mimram dan Di Giusto "A Categorical Theory of Patches" menjadi pendekatan kategorikal paling luas untuk mengedit-skrip seperti yang digunakan oleh
UNIX diff
.Ya, penggabungan dianggap sebagai tekanan pada pelengkapan gratis dari kategori di atas. Kami membutuhkan penyelesaian untuk memastikan kami menambahkan konflik penggabungan pada konstruksi kami. Bukan kasus penggabungan selalu ada.
Terhadap pertanyaan kedua Anda, tidak ada gagasan pasti tentang naskah edit minimal karena dua alasan utama.
Edit-skrip datang dalam segala bentuk dan bentuk. Beberapa penulis mempertimbangkan penyisipan, penghapusan, dan salinan, beberapa penulis juga ingin menambahkan substitusi sebagai operasi. Ketika Anda menggeneralisasi dari string ke pohon, maka, sejumlah operasi lain menjadi layak.
Ada banyak pekerjaan menggeneralisasi skrip edit ke pohon. Ini telah dipecah menjadi dua bagian utama:
Untyped Trees : Pikirkan ekspresi-s saja. Jarak edit pohon antara dua pohon adalah string-edit-jarak antara preorder traversal dari pohon tersebut. Anda dapat memeriksa beberapa daftar pustaka oleh Demaine et al. atau Pawlik dan Augsten , misalnya.
Typed Trees : Patches over Abstract Syntax Trees yang dijamin dapat menjaga ketikan-baik objek, yaitu menerapkan patch akan selalu menghasilkan AST yang valid. Di bawah payung yang diketik, ada sedikit operasi edit yang dapat dipertimbangkan. Pergantian, misalnya, tidak masuk akal. Namun demikian, ada perbedaan pada traversal preorder pohon oleh Lempsink et al. , yang kemudian diperpanjang oleh Vassena . Saat ini saya fokus pada pendekatan yang menjauhkan diri dari mengedit skrip untuk masalah yang saya tunjukkan sebelumnya, seperti karya terbaru kami atau beberapa karya sebelumnya yang mencoba mengambil keuntungan dari struktur tipe nilai yang "ditambal".
Dalam salah satu dari kasus-kasus itu saya belum melihat interpretasi kategoris yang teliti terhadap tambalan-tambalan terstruktur pohon.
sumber
diff
diff3
Ada banyak pekerjaan dalam arah ini. Anda bisa mulai dengan melihat [1, 2], tetapi mereka tidak menguras topik.
S. Mimram, C. Di Giusto, Teori Kategorikal Patch .
C. Angiuli, E. Morehouse, DR Licata, R. Harper, Teori Patch Homotopical .
sumber