İlköğretim Afin Mantık pratik bir programlama dilinin çekirdek tipi sistemi olarak kullanılabilir mi?


9

İlköğretim Afin Mantık, temel zamanda azaltılabilen λ terimleri sınıfını yakalayan bir tür sistemdir. Dahası, EAL-tipi terimler Lamping'in algoritmasının soyut parçası kullanılarak azaltılabilir, bu benim için özellikle ilginçtir, çünkü ilgili etkileşim birleştiricilerini araştırıyorum.

Benim sorum, EAL kullanarak temel tip sistemi olarak pratik bir programlama dili nasıl yapılabilir? Yani, çekirdek karakter sistemine bu özelliği etkilemeden ne tür uzantılar (sabitleme noktaları, polimorfizm, bağımlı tipler, veri tipleri vb.) Yapılabilir ve böyle bir dil pratikte kullanılabilir mi, yoksa bir şekilde de farkında olmadığım nedenlerle kısıtlayıcı mı?


"Temel Afin Mantık, temel zamanda azaltılabilen λ terimleri sınıfını yakalayan bir tür sistemdir": bu kesin değildir. EAL bir yakalayan sıkı bir alt kümesiniλTemel fonksiyonları temsil eden terimler (Kilise kodlaması wrt). Tüm temel işlevlerin kapsandığı doğrudur : her temel işlev içinf, en az bir EAL terimi hesaplama vardır f, ancak temel algoritma hesaplamasına karşılık gelen tonlarca başka terim vardır. fEAL'de olmayanlar.
Damiano Mazza

Woops, doğru. Ayrıca, anladığım kadarıyla, soyut algoritma ile azaltılabilen, ancak bir EAL tipine sahip olmayan terimler de var, değil mi? Dolayısıyla, tüm EAL terimleri kehanet olmadan azaltılabilirken, soyut algoritma ve EAL arasında hala bazı uyumsuzluklar vardır. @DamianoMazza
MaiaVictor

Evet doğru.
Damiano Mazza

1
"Her neyse, kimse ne elde edebileceğinizi denemenizi yasaklıyor!" - 3 yıl sonra: evet, kimse beni yasaklamadı, ben de yaptım! docs.formality-lang.org . Tüm yardımlarınız için teşekkürler :)
MaiaVictor

Yanıtlar:


10

Çok benzer bir şey, ancak EAL yerine hafif afinite mantığı (LAL) kullanmak birkaç yıl önce Baillot, Gaboardi ve Mogbil tarafından denendi (kağıdı burada bulabilirsiniz ). Çalışmalarının daha liberal bir sistem olan EAL'ye kolayca genelleştirilebileceğini düşünüyorum.

Bu dilin özelliklerine gelince, yerel olarak polimorfizme sahipsiniz (EAL, ikinci dereceden doğrusal mantığın bir kısıtlamasıdır). Bildiğim kadarıyla kimse bağımlı türlere bakmadı, ama neden çalışmamaları gerektiğini anlamıyorum. Aslında, tiplendirilmemiş EAL, normalleştirilmiş özellikleri türlere bağlı olmadığından, tip EAL kadar iyi çalışır.

Bunun bir sonucu, EAL'de türlerin keyfi düzeltme noktalarını (örneğin , Baillot'un bu diğer makalesine bakınız) kullanabilmeniz ve doğal özyinelemeli tarzda (örneğinlist A:=nil|A  list A), daha az doğal (programlama açısından) sistem F tanımıyla birlikte. Bununla birlikte, türlenmemiş normalizasyon hakkındaki yukarıdaki açıklamalara göre, EAL tabanlı bir programlama dili her zaman toplam olacaktır , bu da bir düzeltme noktası birleştiricisine sahip olmayacağınız ve özyinelemeli türlerin kullanımının beklediğiniz kadar doğal olmadığı anlamına gelir. Örneğin, Scott rakamlarını alın: özyinelemeli tanımlar olmadan (düzeltme noktası birleştiricisi tarafından verilen), tamsayıların bu gösterimi ile sabit zamanlı işlemlerin ötesinde bir şey ifade etmek zordur. Bu nedenle, yineleme için hala Kilise rakamlarını kullanmanız gerekecektir (ör.for döngüler), ışık mantıklarının temel katmanlaşma kısıtlamasında (bunlara karmaşıklık özelliklerini veren) gireceğinizi kullanarak: bir işlevi yineleyemezsiniz NatNat kendisi yineleme ile tanımlanmıştır (Nat İşte Kilise tamsayılarının türü).

Bir örnek: bazı "Kilise tamsayı hackleme" ile EAL'de tanımlamak mümkündür dbl:NatNat öyle ki dbl n_=2n_ olmadan yineleme kullanarak. Sonra tekrarlayabilirsinizdbl üstel fonksiyonu tanımlamak expancak bunun kendisi tekrarlanamaz. Dolayısıyla, EAL tabanlı herhangi bir programlama dilinin, belirli tanımları yineleme ile yasaklayan bir çeşit mekanizmaya sahip olması gerekecektir; böyle bir kısıtlamanın programcıya garip gelen bir dilde nasıl sonuçlanmayacağını hayal etmek zor. Her neyse, hiç kimse ne elde edebileceğinizi denemenizi yasaklıyor!

Her durumda, optimal değerlendirme, EAL ve genel olarak ışık mantığı arasındaki ilişki ile ilgileniyorsanız, Coppola'nın makalelerine 2000'lerin başından ortalarına bakmanızı öneririm .

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.