Küçük ve Büyük Adım Operasyonel Anlambilim Arasındaki Fark


28

Küçük ve büyük adımlı işlemsel anlambilim arasındaki temel farklar nelerdir?

Ne olduğunu ve ikisine sahip olma motivasyonunu kavramakta zorlanıyorum.


1
Operasyonel anlambilim konusundaki Wikipedia makalesi , "Büyük adımlı anlambilim" bölümündeki toplam bilgilerin toplamının "Bu bölüm genişleme gerektiriyor" olduğunu fark edene kadar ümit verici görünüyor.
David Richerby

1
Öğrenme kaynağınız nedir? Bu konuda ne içeriyor? Ne düşünüyorsun? İpucu: Büyük adım anlambilimi x = 0; while ( true ) { x = x + 1; }nedir?
Raphael

@Raphael Okumak Hesaplama Anlamak . Düşüncelerim, küçük adımlı yaklaşımın, bir ifadeyi daha fazla azaltılamayacak kadar alt ifadelere indirgemek ve daha sonra değerlendirmektir. Büyük adım, olayları hemen değerlendirmek gibi gözüküyor, ancak ikisi de daha yüksek seviyeli yapıları delme konusunda göründüğü için, iki yöntem arasında gerçekten ilginç bir fark yok.
Simon Morgan,

Büyük adım, alt yapıları değerlendirerek daha yüksek seviyeli yapılardan delinmek, küçük yapıları ise alt yapılara dönüştürerek daha büyük bir yapıyı azaltmaktır.
Simon Morgan

Yanıtlar:


32

Küçük adımlı anlambilim, her seferinde bir hesaplama adımındaki ifadeleri değerlendirmek için bir yöntem tanımlar. Resmen konuşmak gerekirse, ifade dili için küçük adımlı bir anlambilim bir ilişkidir : E × E , redüksiyon ilişkisi olarak adlandırılır . Küçük adımlı anlambilim, bir ifadeye ne olduğunu ayrıntılı olarak açıklar. Sonsuz bir zincir e 0e 1e 2 zincirleriyle birlikte, sonlandırılmayan programları bile kesin olarak açıklayabilir . Sonlandırma programı öyle birdir ki e 0e 1that vE→:E×Ee0e1e2e0e1vbir ile sonlandırıldığında değer bu şekilde e 'D , V e ' . veE,ve

Spektrumun diğer ucunda, terimsel anlambilim vardır . Terimsel anlambilim, her ifadeye bir "anlam" atar. Bu ifadelerden ifadelere kadar bir işlevdir: ( D etki alanı olarak adlandırılır). Belirtilerin alanı, sözdizimsel alan ile tamamen ilişkili olmayabilir, örneğin E , bir sayıya göre değerlendirilen ifadelerolabilirve D , N veya R gibi bir sayı kümesi olabilir.[[]]:EDDEDNR

Büyük adımlı anlambilim, ortada birazdır. Bir ifade dili ile ilgili büyük adımlı bir anlambilim ve V değerleri kümesi; : E × V ilişkisidir . Bir ifadeyi değeriyle ilişkilendirir (dil deterministik değilse, muhtemelen çoklu değerler). Genellikle, sonlandırılmayan ifadeler için özel bir değer kullanılır.EV⇓:E×V

Öyleyse neden bu üç düşünceye sahibiz? Bu kavramların hepsi birbirini modelleyebilir, ancak model bir karmaşıklık derecesi ekler.

  • Küçük bir adımlı semantik verilen (redüksiyon olmayan deterministik ise, veya değerleri) kullanarak, karşılık gelen bir büyük adım değeri, her bir ifade ile ilgilidir semantik tanımlayabiliriz: E v zinciri vardır IFF e eev ve v daha fazla azaltamaz. Genel olarak, küçük adımlı anlambilimi büyük adımlı anlambilimden yeniden oluşturamazsınız. Örneğin, sonlandırılmayan tüm ifadeler büyük adım anlambiliminde ayırt edilemez.ee1vv
  • Büyük adımlı bir anlambilim verildiğinde , E V'de bunun küçük adımlı bir anlambilim olduğunu söyleyebilirsin . Bu özellikle yararlı değil.⇓:E×VEV
  • Küçük bir adımlı semantik verilen , bir ifadenin anlam bundan başlayan indirgeme zincirlerinin grubu karşılık gelen bir denotasyonel semantik tanımlayabilir. Bu, biçimsel tanımı yerine getirir, ancak özellikle kullanışlı değildir, çünkü doğrudan sözdizimine bakarak, üzerinde düşünmesi daha kolay olan nesnelere ek bir teorik yük ekler.
  • Bir ifade anlambilim verilen , tüm olası belirtileri dile değerler olarak ekleyerek küçük adımlı bir anlambilim tanımlayabilirsiniz. Bu, programcının yazabileceği sözdiziminin bir parçası olmayan değerler yaratmayı gerektirir; bu, bazı ilginç sonuçların “tüm programlar için” yerine “programcının yazabileceği tüm programlar için” belirtmesi gerektiği anlamına gelir. Bu nedenle bu nedenle de pek kullanışlı değil.[[]]
  • Büyük adımlı bir anlambilim verildiğinde , alanın bir değerler kümesi olduğu karşılık gelen bir anlamsal anlambilim tanımlayabilirsiniz: [ . Büyük adımlı anlambilimsel deterministik ise (her ifade tek bir değere indirgenirse), alanın değerler kümesi olduğu daha basit bir ifade anlambilimi tanımlayabilirsiniz.[[e]]={vev}
  • Tersine, bir ifade anlambilimi verilen , büyük adımlı bir anlambilim tanımlayabilirsiniz E [[[]] . Yine bu biraz anlamsız.E[[]]

İşlemsel olarak konuşursak, küçük adımlı semantik, dil için bir tercüman tarafından gerçekleştirilen her operasyona bakmaya karşılık gelir. Büyük adımlı anlambilim yalnızca elde edilen değere bakar. Tasavvufî anlambilim, bilgisayarda olanlarla bir ilgisi olabilecek veya olmayabilecek bir matematiksel yorumlamaya bakar.

Küçük adımlı anlambilim en açık olanıdır. Sonlandırılmayan programlar hakkında açıkça faydalı bilgiler sağlar. Daha genel olarak, programın davranışı hakkında ayrıntılı bilgi sağlar.

Anlamsal anlambilim, sözdizimsel yapıları keyfi matematiksel nesnelere dönüştürür; bilim insanlarının istediği şeyi ifade edebilir (bir ifadenin işaretini ondan tüm olası indirgeme zincirleri olarak tanımlayabilirsiniz), ancak bir karmaşıklık düzeyi eklemenin bedeli olarak. İfadenin tam olarak nasıl değerlendirildiği gibi bazı detayları soyutlamak istediğimizde kullanılır.

Büyük adımlı anlambilim ortadadır: değerlendirmenin ayrıntılarını soyutlar ancak sonucun sözdizimsel yapısını korur. Genellikle konsept, temelde “ ifadelerini açıklamanın bir yolu olarak, küçük adımlı bir anlambilim olduğunda kullanılır. ”Olarak“ e e n(e1,,en),ee1en and e,eneeen”. Bu tür yapılarda, kavramlar çok farklı olsa da (biri bireysel hesaplama adımları ve sonlandırılmayan programlar hakkında konuşmamıza izin verirken, biri değil), tanımları çok benzer görünecektir çünkü bu durumda büyük-adım anlambilimi temel olarak “eğer ve… ve e n v ve v , e 1v ” şeklinde bir değerdir .e1e2envve1v


Bunu da öğreniyorum, ama cevabında açıklamanı istediğim bir şey var. "Büyük adımlı anlambilim, ortada bir tür" dedin. Ancak, küçük adım aslında 'orta' model olmaz mıydı? İfadeleri düşünün: A: ((5 + 7) + 3) B: ((5 + 5) + 5) C: ((1 + 2) + 1) D: ((2 + 1) + 1) Reddetme sınıflandırır farklı değerlere sahip C ve D bile (muhtemelen "C" ve "D") ve büyük adım onları hem "4" hem de hem A hem de B'yi "15" olarak sınıflandırır, ancak küçük adım size verir "(12 + 3) A ve B için "ve" (10 + 5) "ve C ve D için" (3 + 1) "
Timothy Swan

@TimothySwan Alışılmış aritmetik değerlendirmeyi tanımlamak istediğinizi varsayarsak, bir anlamsal anlambilim C ve D'yi ayırt etmez. Küçük-adımlı bir anlambilim gibi bir azaltma zinciri tanımlar . Büyük adımlı bir anlambilim, bir anlambilimsel anlambilime çok benzeyecektir: ( ( 2 + 1 ) + 1 ) 3 vs [((2+1)+1)3+14((2+1)+1)3 . 4 ise büyük adımlı semantik dil sözdiziminde biridir 4 denotasyonel semantikte metateori bir ila olmakla birlikte, fark bu basit örnekte görünür veya önemli değildir. [[((2+1)+1)]]=444
Gilles 'SO- kötülük yapmayı bırak'

Demek, 'Terimsel anlambilim her ifadeye bir' anlam 'atar.' ifadelerin kendilerini benzersiz bir şekilde tanımlamak istemediğini, ancak bir tür değerlendirme bağımsız anlamını mı ifade ettin? Büyük adım ve çıkarımsal anlambilim arasındaki farkı açıkça gösteren basit bir örnek verebilir misiniz? Ayrıca lütfen 3içinde ((2+1)+1)⇓3'büyük adım' ille o doğrudan eşleme olmaz bazı sonu tüm değerdir, ama ne örneği de 'denotasyonel' I tahmin ediyorum? Farkın, (a + 1)içerdiği ortama bağlı olarak, bağlamla bir ilgisi var mı a?
Timothy Swan

@TimothySwan Herhangi bir yan etki olmadığı, determinizm olmadığı ve işlev olmadığı sürece, bir ifadenin ifade anlambilimi, değerlendirdiği değerdir. Determinizm olmayan büyük adım ve vurgulu arasındaki farkı göstermek için iyi bir yoldur: Bir ifadenin ifade edilmesi, sahip olabileceği değerler kümesi olacaktır: , büyük adımlı bir anlambilimin birden fazla kabul edilebilir yargısı olur: r a n d ( 1 .. n ) 1 ve r a n d ( 1 .. n ) 2 ve ...Bir yazım hatası oldu. [[rand(1..n)]]={1,2,,n}rand(1..n)1rand(1..n)23
Gilles 'SO- kötülük olmayı'
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.