Azaltma stratejileri ile değerlendirme stratejileri arasındaki fark nedir?


10

Gönderen değerlendirme stratejisi Wikipedia'da makalesinde:

Lambda hesabında azaltma stratejisi kavramı benzer ama farklıdır.

Gönderen azaltma stratejisi Wikipedia'da makalesinde:

Bilgisayar bilimlerinde değerlendirme stratejisi kavramına benzer, ancak çok farklıdır.

Bu iki makalenin bahsettiği değerlendirme stratejileri ile azaltma stratejileri arasındaki ince ayrım nedir? Farklı alanlardan sadece iki benzer kavram mı?


3
Değerlendirme yalnızca kapalı terimler için tanımlanmıştır ve bağlayıcıların altına girmez. İndirgemenin bağlayıcılar altına girmesine izin verilir ve bu nedenle açık terimler için tanımlanır.
Neel Krishnaswami

Yanıtlar:


8

Bir azaltma stratejisi, Lambda'da redex olarak tanımladığınız şeye bağlı olarak olası tüm redekslerden bir redeks (indirgenebilir ifade) alan bir işlevdir.

Gayri resmi olarak, bir değerlendirme stratejisi bir dilin argümanlarını değerlendirme sırasıdır. Parametre geçirme stratejisi, dilin işleve verdiği şeydir.

Bunlar arasındaki bağlantıyı anlamak için, Plotkin'in Call-by-name, Call-by-Value ve Lambda Hesabı hakkındaki makalesini inceleyin. Hangi değerlendirme sırasına bağlı olarak farklı AXIOMS ​​seçmek istediğinizi açıkça söylüyor. Cb adı için eski beta aksiyomunu ve cb değeri için beta değeri aksiyomunu istiyorsunuz. Bunu yaparsanız, tüm meta-teoremler her iki lezzet için de aynı şekilde çalışır. Daha sonra (birçok işbirlikçiyle birlikte) bu fikrin PL dünyasının çalıştığı her şeyi genelleştirdiğini gösterdim.

Tamamen teknik, yorumlanabilecek bir şiir değil. Sadece okuyun.

- Matthias Felleisen

ps İnsanların Redex kitabımızdaki Bölüm I'den Plotkin'in makalesini daha kolay anlayacağını düşünüyorum. Ama evet, 3 kat daha uzun.



Yeniden değerlendirmek için, bir azaltma stratejisinin bir terim için başarılı olanı tamamen belirlediğini söylemek doğru olur mu?
Guido

6

"Azaltma stratejisi" wikipedia makalesi, anonim bir IP tarafından "Değerlendirme stratejisi" makalesine yapılan belirli bir düzenlemeden tamamen çıkarılır .

Temsil ettiği görüş mutabakat değildir, çünkü alandaki nispeten az sayıda insanın kendilerine "cevap stratejisi ve değerlendirme stratejisi adlarını ayırt eder misiniz?" Bunu sadece bu ayrımın önemi konusunda kararlı olan Matthias Felleisen'den duydum - ve bu bakış açısının, bu noktaları onunla ayrıntılı olarak tartışmak için zaman alma şansı olan başkaları tarafından paylaşıldığını varsayıyorum.

Bu noktaya ilişkin şu anki anlayışım (ancak henüz tam adaletlerine ilişkin teknik detayları incelemedim) aşağıdakilerle ilgilidir: Bu, "küçük adım" anlambilimine karşı "büyük adım" ı kullanmanızla ilgilidir - bu ayrım standarttır ve anlaşılmıştır Sahadaki herkes tarafından. Küçük adım semantiği, bir atomik indirgeme aşamasını tanımlar ve sonuç genel olarak hala indirgenebilir. Büyük adım semantiği, dilinizin bir değer döndürmekten başka gözlenebilir etkiler gibi başka bir gözlenebilir etkisi varsa, başlangıç ​​programından değerine (veya daha zengin bir "yanıt" türüne) kadar giden bir "büyük" azaltma adımı tanımlar. değişebilir durum).

Hem büyük adım hem de küçük adım ilişkisi tanımlarsanız, büyük adım semantiğinin küçük adım ilişkisinin geçişli kapanışına dahil olup olmadığını ve küçük adım ilişkisinin diğer sıkışmış terimlere düşmediğini kontrol edebilirsiniz. büyük-adım ilişkisiyle ulaşılanlar veya büyük-adım azaltma tanımlanmışsa ayrışırlar. Bu ikisi arasında beklenen tutarlılık ilişkisidir.

Makalenin ifadelerinin az çok "değerlendirme stratejisi büyük adım ilişkisi", "azaltma stratejisi küçük adım ilişkisi" şeklinde modern terimlerle açıklanabilir. "Azaltma stratejisi" makalesinde yapılan tartışmanın, 1973 ve 1991 yılları arasında, bu kavramların henüz doğduğu bir zamanda, makaleler ve araştırmalar (ve daha da önemlisi, okuma ve yazma sırasında oluşan güzel bakış açıları) ile ilgili olduğunu ve muhtemelen bugünkü kadar iyi anlaşılmamıştır. (1987'de Kahn tarafından büyük adım semantiği vurgulandı ve küçük adım semantiği üzerine en önemli çalışmalardan biri Wright ve Felleisen, 1992)

Felleisen'in bu farkın önemi üzerinde ısrar etmesinin daha tartışmalı tarafı için (yani, neden sadece "küçük-adımdan büyük-adım, meh" ten daha fazla olabilir) şu andaki anlayışım şudur: yapılan nokta, küçük adım semantiğinin bir uygulama detayı olarak görülmesidir. anlambilim, bu argümana göre, her bir programı kendi değeri / cevabı ile eşleştiren soyut işlevdir ve geri kalanı ise (veya bu anlambilimin neden olduğu eşdeğerliğin sebebi) yaklaşık olarak tasarlanmış uygulama cihazlarıdır. Bugün büyük bir adım dediğimizde, sözdizimsel nitelikte bir çıkarım kuralları sistemi düşünüyoruz, ancak yukarıda tartışılan "azaltma stratejisi" aslında bir haritalama olarak soyutlanmasıdır. (Bunun pratikte nosyona daha fazla ifade veya güç verdiğini düşünmüyorum, ancak daha soyut hale getiriyor.)

Bu yüzden bu wikipedia sayfasının ve Matthias Felleisen'in söylediği şey şudur: "Değerlendirmenizi istediğiniz şekilde tanımlayın, ancak günün sonunda önemli olan şey programlarınızın değerlerine nasıl eşlendiğidir / cevaplar / davranışlar ve buna 'operasyonel anlambilim' denmesi ve bunun gerekçelendirilmesi gerekir.

Bu konumun, birincisi doğada daha sözdizimsel olarak görüldüğü "operasyonel semantik" ve "anlamsal semantik" arasındaki mevcut ayrımı (bence oldukça uzlaşmacı olduğunu düşünüyorum, ama benim açımdan kültürel bir önyargı olabilir) bir dereceye kadar gidiyor. (bir indirgeme ilişkisi olarak tanımlanır) ve ikincisi tipik olarak, hesaplama olarak eşdeğer programların tam olarak aynı gösterime sahip olması ile karakterize edilir (bu nedenle, gösterim gerçek hesaplama mekanizmasından habersizdir). Bu son bakış açısına göre, makalelerde "değerlendirme stratejisi" veya "operasyonel anlambilim" olarak önerilen ve yukarıdaki açıklamam daha ziyade bir anlamsal anlambilim olarak görülecektir - ama kuşkusuz çoğundan daha somut niteliktedir: değerler / cevaplar / davranışlar sözdizimsel nesnelere birçok anlamsal alandan daha yakındır.

Kaynaklar: Bu bakış açısını anlamak için, muhtemelen Gordon Plotkin'in 1973'teki makalesi olan ilan edilen kaynağına geri dönmeniz yararlı olacaktır. Ayrıca wikipedia'da belirtilen ikinci makalelerden birini denemekte iyi şanslar olabilir; Örneğin, Crank ve Felleisen, 1991 tarafından yazılan "Parametre Geçiş ve Lambda Matematik" in ilk birkaç sayfadaki konuyla ilgili konumlarına çok net bir genel bakış sunduğunu gördüm.

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.