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:
- Nesneleri ve bölgeleri ilişkilendirmek için kullandığınız yeni bir tür bölge değişkenleri ekleyin.
- Hoare mantığına bir etki sistemi ekleyerek bölgeleri takip eder ve okur.
- 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 .