Kompozisyonsal semantiği karakterize eden gerçek bir anlaşma yoktur (ayrıca bu makaleye bakın), ancak kompozisyon olması gerekir . Bu, semantik , programları anlamlarına eşleyen şudur: Herkes için harf olmalıdır -ary programı yapıcıları f ve bütün programların M_1 , ..., M_n (örtük iyi typedness varsayarak):n f M 1 M n[[ ⋅ ]]nfM1Mn
[[ f( M1, . . . , Mn) ]] = t r a n s ( f) ( [[ M1]] , . . . , [[ Mn]] )
Burada , anlamsal alanda karşılık gelen yapıcıdır . Kompozisyonluk, cebirdeki homomorfizm kavramına benzer.ft r a n s ( f)f
İşlemsel anlambilim bu anlamda bileşimsel değildir. Tarihsel olarak, anlamsal anlambilim kısmen, operasyonel anlambilim kompozisyonu olmadığı için geliştirilmiştir. D. Scott'ın çığır açan sıra kuramsal -calculus anlamsal anlambiliminden sonra, en çok anlamsal anlambilim sipariş-kuramsaldı. Saf entelektüel çıkarların dışında - anlamsal anlambilimin çoğunlukla icat edildiğini hayal ediyorum çünkü (1960'larda):λ
- İşlemsel semantik hakkında akıl yürütmek zordu.
- Önemsiz dillere aksiyomatik anlambilim vermek zordu.
Sorunun bir kısmı, programların eşitliği kavramının şimdiki kadar iyi anlaşılmamış olmasıydı. Her iki sorunun da önemli ölçüde iyileştirildiğini, (1) örneğin süreç teorisinden (belirli bir operasyonel anlambilim biçimi olarak görülebilir) gelen bisimilasyon esaslı teknikler veya örneğin operasyonel anlambilim ve program üzerine Pitts çalışmasıyla iyileştirildiğini iddia ediyorum. eşdeğerlik ve (2) örneğin ness-kalkülüsünde dil dilini programlama yoluyla Hennessy-Milner mantıklarının tipli versiyonları olarak türetilen ayırma mantığı veya Hoare mantıklarının gelişmeleri ile. Program mantıklarının (= aksiyomatik anlambilim) de bileşimsel olduğunu unutmayın.
Anlamsal semantiğe bakmanın bir başka yolu, birçok programlama dilinin olması ve hepsinin benzer görünmesidir, belki de basit ama evrensel bir meta dil bulabilir ve tüm programlama dillerini bu meta ile kompozisyonel bir şekilde eşleyebiliriz. dil. 1960'lı yıllarda bazı yazılan hesabının meta dil olduğu düşünülüyordu . Bir resim 1000'den fazla kelime söyleyebilir:λ
Bu yaklaşımın avantajı nedir? Belki ona ekonomik bir POV'dan bakmak mantıklıdır. Bir nesne programı sınıfı hakkında ilginç bir şey kanıtlamak istiyorsak, iki seçeneğimiz var.
İkincisinin birleşik maliyeti muhtemelen bir öncekinin maliyetinden daha yüksektir, ancak çeviriyi kanıtlamanın maliyeti gelecekteki tüm kullanımlar için amortismana tabi tutulabilirken, meta seviyesi için mülkü kanıtlayan maliyet kanıtın maliyetinden çok daha düşüktür nesne düzeyinde.
Anlamsal semantiğe orijinal düzen teorik yaklaşımı şimdiye kadar bu vaatleri yerine getirmemiştir, çünkü nesne yönelimi, eşzamanlılık ve dağıtılmış hesaplama gibi karmaşık dil özelliklerine henüz kesin düzen teorik anlambilimi verilmemiştir. "Kesin" ile kastediyorum, bu dillerin doğal işlemsel semantiği ile eşleşen anlambilim.
Anlamsal anlambilimi öğrenmeye değer mi? Eğer anlamsal semantiğe düzen teorik yaklaşımları kastediyorsanız, programlama dilleri teorisinde çalışmak istemiyorsanız ve daha eski makaleleri anlamanız gerekmedikçe muhtemelen hayır. Anlamsal semantiğe düzen teorik yaklaşımları öğrenmenin bir başka nedeni de bu yaklaşımın güzelliğidir.