Mülkiyet Türleri ve Ayrılma Mantığı


10

Sahiplik türleri ve Ayrılma Mantığı benzer hedeflere, sahiplik ve diğer adlandırma üzerinde kontrole sahip gibi görünmektedir. Belki de eklemeliyim: modüler özellikler yazma yeteneği.

Sahiplik türleri ile Ayrılma Mantığı arasındaki ilişki hakkında bilinenler nelerdir?


Tuhaf bir şekilde tanıdık geliyor.
Dave Clarke

@DaveClarke: Cevabım sizin için anlamlı mı? Mülkiyet üzerinde çok çalıştınız ve ben ayırma mantığı üzerinde çalışmaya başlamadan önce biraz uğraştım.
Neel Krishnaswami

@NeelKrishnaswami: Cevabınız çok anlamlı. Zaman bulabildiğim zaman bazı boşlukları doldurmayı planlıyorum. Her durumda, önemli bir karşılaştırma yapan herhangi bir makalenin farkında değilim.
Dave Clarke

Yanıtlar:


7

Kısa bir süre önce Mülkiyet Türleri hakkında bir anket yazmayı bitirdim ve iki konu arasındaki ilişkiyi tartışan çok az şey buldum. Karşılaştığım en yakın üç makale, merakla aynı konferanstan geliyor:

  • Yang Zhao ve John Boyland. Mülkiyet türleri için temel bir izin yorumu. IEEE / IFIP Uluslararası Yazılım Mühendisliğinin Teorik Yönleri Sempozyumu, TASE 2008, 17-19 Haziran 2008, Nanjing, Çin. IEEE Computer Society, 2008., sayfalar 65-72.

  • Shuling Wang, Luís Soares Barbosa ve José Nuno Oliveira. Kapalı ayırma mantığı için ilişkisel bir model. İkinci IEEE / IFIP Uluslararası Yazılım Mühendisliği Teorik Yönleri Sempozyumu, TASE 2008, 17-19 Haziran 2008, Nanjing, Çin. IEEE Computer Society, 2008., sayfa 263-270.

  • Shuling Wang ve Zongyan Qiu. Sınırlandırma ve uygulaması için genel bir model. İkinci IEEE / IFIP Uluslararası Yazılım Mühendisliği Teorik Yönleri Sempozyumu, TASE 2008, 17-19 Haziran 2008, Nanjing, Çin. IEEE Computer Society, 2008., sayfa 57-64.

İlk makale, Boyland'ın programlar hakkında akıl yürütmek için geliştirilen bir yetenek sistemi olan kısmi izinleri açısından hakimiyet sahipleri ve kilit sahipleri olarak iki sahiplik türünü kodlamaktadır.

İkinci makale sahiplik türlerinde kullanılanlara benzer hapsetme fikirleri alır ve bunları ayırma mantığına ekler.

Üçüncü makale, mülkiyet türleri gibi çeşitli sınırlandırma disiplinlerini kodlamak için kullanılan bir anlambilimsel yaklaşım geliştirmiştir. Sistemlerinin ayırma mantığını da kapsadığından emin değilim ve şu anda erişemiyorum. Yaklaşımları oldukça ad hoc; James Noble ve diğerleriyle bir süre önce yazdığım bir yazı için daha resmi ve sistematik olarak görülebilir:

  • Kapsülleme modeline doğru James Noble, Robert Biddle, Ewan Tempero, Alex Potanin, Dave Clarke Nesneye Yönelik Programlamada İlk Uluslararası Takma, Sınırlama ve Mülkiyet Çalıştayı (IWACO), 2003.

9

Farkı anlama şeklim, sahiplik türlerinin nesne grafiğinin şeklini sınırlaması ve alt yapı sistemlerinin (ayırma mantığı gibi) öbeğe erişim izinlerini yönetmesidir .

ÖdÖdÖdÖd

Aksine, doğrusal tipler ve ayırma mantığı gibi alt yapı sistemleri kaynaklar fikrine dayanır . Yığının her bölgesi bir kaynaktır ve kaynağa sahip değilseniz ona dokunamazsınız. Bu, çerçeve koşullarını çok kolaylaştırır: her zaman tutarlar.

Yüzeysel bir fark (yine de beni uzun zamandır karıştırıyordu) sahiplik türlerinin tipler olduğu ve ayrılma mantığının bir program mantığı olduğuydı. Neyse ki, sahiplik türleri bir tür teorik ortamda doğarken, insanlar bu fikirleri program mantığına da uyguladılar.

Bu konuda bildiğim iki temel teorik eser Kassios'un Bannerjee ve Naumann'ın (ve öğrencilerinin) bölgesel mantık çalışmalarında sistematik olarak sömürdüğü dinamik çerçeveler üzerindeki çalışmasıdır .

Anladığım kadarıyla, temel yaklaşımları Hoare mantığını almak ve daha sonra:

  1. Nesneleri ve bölgeleri ilişkilendirmek için kullandığınız yeni bir tür bölge değişkenleri ekleyin.
  2. Hoare mantığına bir etki sistemi ekleyerek bölgeleri takip eder ve okur.
  3. Bir iddianın çerçeveye saygılı olup olmadığını belirlemek için efektleri kullanın. Öyleyse, çerçeveleyebilirsiniz ve eğer değilse, yapamazsınız.

Her yaklaşımın faydaları ve zayıflıkları vardır.

  • Sahiplik, çerçeve koşullarını hesaplamanız gerektiğinden, çerçeve özelliklerini alt yapı yaklaşımlarına göre önemli ölçüde daha az kullanışlı hale getirir.

  • Öte yandan, DAG'lardaki algoritmalar, ayak izini işaretçi yapısından ayırabildiğiniz için, mülkiyet tarzında daha güzel endüktif provaları destekler. Ayırma tarzı bir spesifikasyonda, doğal olan, genişleyen bir ağaçta endüktif bir değişmez vermektir. Ancak algoritmanın hesapladığı yayılan ağaç, değişmezinizin sahip olduğu ağaçtan farklıysa, incinmiş bir dünya içindesiniz.

Genel anlamda, ayırma işleminin sahiplikten daha kolay olduğudur, çünkü zorunlu bir programdaki hemen hemen her komut için çerçeve özelliklerine ihtiyacımız vardır. (Dave Naumann, bölge mantığının otomasyona daha uygun olduğunu savunuyor, çünkü iddia mantığı düz eski FOL olarak kalıyor ve böylece hazır teorem kanıtlayıcılarını ve SMT çözücüleri kullanabilirsiniz.)

DÜZENLEME: Matt Parkinson ve Alex Summers, Ayırma Mantığı ve Örtük Dinamik Çerçeveler Arasındaki İlişki adlı iki makaleyi birleştiren bir mantık verdiğini iddia ettikleri makaleyi buldum .


Görüşleriniz için çok teşekkürler Neel. Ancak farklılıklar yerine iki paradigma arasındaki ilişkiyi merak ediyorum . Şimdi soruyu açık tutacağım.
Uday Reddy
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.