Veri akışı analizi, soyut yorumlama ve tür çıkarımı denkliği?


9

@ Babou'nun yakın zamandaki bir soruya vereceği cevap , bir keresinde veri akışı analizinin denkliği (hem çıkarılabilir veya kanıtlanabilir gerçekler hem de çıkarım algoritmasını çalıştırmanın zaman karmaşıklığı açısından) hakkında bir makale okuduğumu hatırlatıyor , soyut yorumlama ve tür çıkarımı .

Bazı alt durumlarda (ileri bağlama duyarlı prosedürler arası veri akışı analizi ve soyut yorumlama gibi) denklik benim için nispeten açıktır, ancak soru diğer karşılaştırmalar için daha belirsiz görünmektedir. Örneğin, Hindley-Milner tipi çıkarımın akışa duyarlı veri akışı analizi ile kanıtlanabilecek bazı özellikleri kanıtlamak için nasıl kullanılabileceğini anlayamıyorum .

Veri akışı analizi, soyut yorumlama ve tür çıkarımı arasındaki denklikleri (veya farklılıkları) tartışan seminal referanslar nelerdir?

Yanıtlar:


4

Veri akışı analizi ve tür çıkarımı soyut yorumlamanın özel örnekleridir.

Veri akışı analizi ve soyut yorum, her ikisi de bir sabitleme noktası hesaplamakla ilgili olduğu için benzerdir. Veri akışı analizleri genellikle sonlandırmayı sağlayan sonlu yükseklikte soyut alanlara sahiptir. Genel olarak, soyut yorumlama bu tür soyut alanları varsaymaz; sonsuz yükseklik alanlarıyla başa çıkmak için soyut yorumlama genişletme ve daraltma tekniklerini kullanır.

Görünüşe göre imo, bu tür çıkarımın sabit nokta hesaplamasıyla ilgili olduğu ortaya çıkıyor. İşte türlerin soyut yorumlar olduğunu açıkça gösteren bir makale: kağıt . Temel olarak, türler program somut anlambiliminin bir soyutlaması olarak görülür. Hindley-Milner tipi sistemde, örneğin, türlerin soyut alanı sonsuz yüksekliktedir ve birleştirme kullanarak (en genel) bir türün hesaplanması esasen (çok kesin olmayan) bir genişleme işlemi gerçekleştirmektedir.


4

Bu üç yaklaşımı ve bunun nasıl bir ilişki olduğunu öğrenmek için iyi bir yer, Nielson, Nielson ve Hankin tarafından hazırlanan Program Analizi İlkeleri kitabıdır .

Veri akışı analizi, soyut yorumlama ve tür çıkarmanın aynı şey olduğunu söylemek doğru değil. Üçünün farklı topluluklardan geldiği göz önüne alındığında, birçok benzerlik ve belki de beklenenden daha fazlası olsa da, birçok farklılık da vardır.


3

Onları temelde aynı olarak görüyorum. Başlangıçta farklı hedefleri vardı ve farklı bilgisayar bilimleri grupları tarafından oluşturuldular.

Veri akışı analizi, derleme mühendisliği grubundan gelir, optimizasyon algoritmaları hakkında konuşmaya ve karmaşıklıklarının üst sınırlarını kanıtlamaya çalışır.

Soyut yorum, bilgisayar biliminin biçimsel, matematiksel alanından gelir. Bu, daha fazla doğruluk ve gerçek derleyiciler oluşturmak için daha az ilgi ile daha resmi bir versiyonudur.

Tip çıkarımı, başlangıçta derleyicilerle havalı şeyler yapmak için bir araç olan fonksiyonel programlama akademik alanından gelir. Daha sonra, bir türün sadece "int" veya "float" tan çok daha fazlası olabileceği ve aynı zamanda klasik veri akışı analizindeki gibi diğer şeyler olabileceği fikri ortaya çıktı.

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.