Adrej’in cevabından memnunum ama daha fazla detaylandırmak istiyorum.
Öncelikle , terimsel anlambilim "bu gösterimin anlamı budur" gibi bir şey söylemek istiyor. Gerçek bir anlambilimci, anlamların zihnimizde var olduğunu ve notasyonların sadece bu anlamları ifade etmenin bir yolu olduğunu hayal etmek ister. Anlamsal anlambilimin kompozisyonlaştırılması gerekliliği bundan kaynaklanıyor. Anlamları birincil ve ikincil notasyonları ise, daha büyük notaların anlamlarını seçmenlerinin anlamlarının fonksiyonu olarak tanımlamaktan başka seçeneğimiz yoktur.
Bu bakış açısını kabul edersek, iyi bir ifade anlambiliminin aklımızda olduğunu düşündüğümüz anlamları yakalaması gerekir. Herhangi bir kompozisyonsal anlambilim mutlaka tasarıya uygun olmaz. Kompozisyonel bir semantik tanımla karşılaşırsam ve kimse kafasında sahip olduğu herhangi bir anlamı ifade ettiğini kabul etmezse, o zaman çok az kullanım alanı vardır. Oyun şu andaki anlambilim bu durumda. Kompozisyonel bir tanımdır ve teknik olarak oldukça güçlüdür, ancak çok az kişi aklında aklındaki anlamlarla bir ilgisi olduğu konusunda hemfikirdir.
Bununla birlikte, herhangi bir kompozisyon tanımının çeşitli teknik avantajları vardır. Terimlerin sözdizimini indükleyerek eşdeğerleri veya diğer özellikleri doğrulamak için kullanabiliriz. Prova sistemlerinin sağlamlığını doğrulamak için, terimlerin sözdizimini tekrar başlatarak kullanabiliriz. Derleyicilerin ya da program analiz tekniklerinin doğruluğunu doğrulayabiliriz (bu, özellikleri gereği, sözdizimi indüksiyonuyla tanımlanır). Tamamen soyut bir anlamsal tanım daha da teknik avantajlara sahiptir. İki programın eşdeğer olmadığını göstermek için kullanabilirsiniz(keyfi bir kompozisyonsal anlambilim ile yapamazsınız). Tamamen tanımlanabilir bir anlamsal tanım daha iyidir. Burada anlamsal alanlar, programlama dilinde tam olarak ifade edebileceğiniz şeye sahiptir (bazı şartlarla). Bu nedenle, sözdizimsel notasyonlarla yapmak zor olacak hangi değerlerin olduğunu görmek için etki alanlarındaki değerleri numaralandırabilirsiniz. Tüm bu gerekçelerle oyunların semantiği zekice puan alıyor.
Bununla birlikte, kompozisyonsal anlamsal tanımlamalar yıllar içinde üstünlüğünü kaybediyor. Robin Milner ve Andy Pitts, tamamen sözdizimi üzerinde çalışan ancak davranışsal anlamdan bahsetmek için gereken her yerde operasyonel semantiği kullanan bir dizi " operasyonel muhakeme " tekniği geliştirmiştir . Bu operasyonel muhakeme teknikleri düşük teknolojidir. Süslü matematik yok. Sonsuz nesne yok. Onları mezunlara öğretebiliriz ve herkes kullanabilir. Bu yüzden, birçok insan neden kasten anlambilgiye ihtiyacımız olduğunu soruyor. (Martin Berger muhtemelen bu kamptadır.)
Şahsen, alet kutumda çok sayıda alet bulundurmakta sorunum yok. Feragatname teknikleri bazı problemlerde ve operasyonel tekniklerde daha iyi puan alabilir. Teoriyi geliştiren araştırmacılar, bir yaklaşıma veya diğerine daha iyi ayarlanmış olabilir. Sıklıkla, öngörüleri bir yaklaşımla geliştirebilir ve bu görüşleri diğer yaklaşımlara aktarabiliriz. (Andy Pitts'in çalışmalarının birçoğu bu türden bir şeydi. Şüphe uyandıran ortamda ilişkisel parametriklik geliştirildi, ancak operasyonel muhakeme olarak nasıl yeniden tanımlanabileceğini anlayabiliyor. Baktığımda "vay, asla olmaz Bunun mümkün olacağını düşündüm. "Ayırma Mantığı da bu yoldan gidiyor. Steve Brookes, eş anlamlı anlambilim kullanarak Eşzamanlı Ayırma Mantığı için 60 sayfalık bir sağlamlık kanıtı verdi.
Operasyonel yaklaşımlar, programlama dilleri çok süslü olduklarında, her çeşit loopy yüksek dereceli türleriyle, mükemmel sonuçlar elde ediyorlar. Böyle şeyleri matematiksel olarak nasıl modelleyeceğimizi bilemeyiz. Veya, standart matematiksel modeller loopiness stresi altında tutarsız olabilir. (Örneğin, bkz. Reynolds tarafından "Polimorfizm set-teorik değildir".) Tamamen sözdizimi üzerinde çalışan operasyonel yaklaşımlar tüm bu matematik problemlerini özenle yan yana getirebilir.
Operasyonel ve şüphe edilen yaklaşımlar arasında orta olan bir başka yaklaşım gerçekleştirilebilirliktir . Operasyonel yaklaşımlarda olduğu gibi sözdizimsel terimlerle çalışmak yerine, diğer bazı matematiksel temsilciler formunu kullanarak kısmen ifade vermeyiz. Bu temsilciler, gerçek anlam ifade eden "anlamlar" olarak nitelendirilemezler ancak en azından sözdizimsel terimlerden biraz daha soyut olurlar. Örneğin, polimorfik lambda hesabı için önce yazılmamış terimlere (bazı yazılmamış lambda hesabının modelinde) anlamlar verebilir ve daha sonra bunları biraz "operasyonel muhakeme" yapmak için bunları temsilciler ("gerçekleştiriciler" olarak kullanabiliriz) daha soyut seviye.
Öyleyse, şüphe uyandırıcı, operasyonel ve gerçekleştirilebilirlik yaklaşımları arasında sağlıklı bir rekabet olmasına izin verin. Zarar yok.
Öte yandan, farklı yaklaşımlar arasında büyüyen "sağlıksız" bir rekabet de olabilir. Bir yaklaşımla çalışan insanlar, diğer yaklaşımların noktasını görmeyecekleri için o kadar yakından bağlanabilirler ki. İdeal olarak, hepimizin farklı yaklaşımların güçlü ve zayıf yönlerinin farkında olmalı ve bireysel favorilerimiz olmasa bile, onlara karşı bilimsel bir tutum geliştirmeliyiz.