Bir işlevin bellek kullanımı gibi özellikler, bağımlı olarak yazılan bir dilde ifade edilebilir mi?


11

Diyelim ki, kodun bütünlük ve işlevsel saflık gibi şeylerin ötesinde özellikler üzerinde düşünmek istersiniz - kişi de bellek tüketimini veya bir fonksiyonun algoritmik karmaşıklığını önemser. Bu bağımlı yazım ve efekt sistemleri ile yapılabilir mi?


2
Bu videoda Brian McKenna zaman karmaşıklığını türlere kodlama örneği sunmaktadır.
Anton Trunov

Yanıtlar:


8

Evet yapabilir. Kavramsal olarak zor olmasa da, o kadar fazla çalışılmamıştır. Alanın bir yönü Guy Blelloch tarafından yapılan araştırma gibi maliyet anlambilimidir .

Anton'un bahsettiği videoda Daniellson'un Tamamen Fonksiyonel Veri Yapıları için Hafif Yarı Biçimli Zaman Karmaşıklık Analizi çalışması yer almaktadır . Bu gerçekten bir işlem başına maliyet taşımak için bir monad kullanmaktadır. Anlamsal düzeyde benzer bir monad, endüktif tiplere sahip fonksiyonel diller için Denotation maliyet semantiğinde kullanılır . İşte 2016'da , Çalışma Sürelerinin Dahili Doğrulaması için Bir Coq Kütüphanesi olan Coq'da benzer bir şey yapan bir 2016 makalesi .

NuPRL halkı da uzun zamandır böyle şeyler yapmakla ilgileniyor. In Contstructive Tipi Kuramı Hesaplamalı Karmaşıklık ifade temelde yapılandırılmış operasyonel semantik üzerinde hesaplama tutarındaki. Biraz daha ilginç hale geldiği yer, dil anlambilimini dile yansıtabilmenizdir. Naif Hesaplamalı Tip Teorisinin son bölümünde, bölüm 12'deki örnek, bu tür şeyleri açıklar ve tartışır.

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.