कोई वास्तविक समझौता क्या denotational अर्थ विज्ञान की विशेषता है (यह भी देखें है इस लेख) सिवाय इसके कि यह होना चाहिए compositional । इसका मतलब है कि अगर अर्थ समारोह है, उनके अर्थ के लिए प्रोग्राम मैपिंग, निम्नलिखित की तरह कुछ होना चाहिए सभी एन -प्रोग्राम प्रोग्राम निर्माता के लिए एफ और सभी प्रोग्राम एम।[[⋅]]nf , ..., एम एन (स्पष्ट रूप से अच्छी तरह से टाइप करना):M1Mn
[[f(M1,...,Mn)]]=trans(f)([[M1]],...,[[Mn]])
यहाँ trans(f) निर्माता के लिए इसी है अर्थ डोमेन। बीजगणित में समरूपता समरूपता की अवधारणा के समान है।f
इस अर्थ में संक्रियात्मक शब्दार्थ रचना नहीं है। ऐतिहासिक रूप से, संप्रदायिक शब्दार्थ को आंशिक रूप से विकसित किया गया था क्योंकि परिचालन शब्दार्थ रचना नहीं था। डी। स्कॉट की सफलता के क्रम के बाद-सिद्धांत संबंधी सांकेतिक शब्दार्थ -calculus के, सबसे अधिक शब्द-संबंधी शब्दार्थ-क्रम-सिद्धांत हुआ करते थे। मैं कल्पना करता हूं कि - शुद्ध बौद्धिक अभिरुचि के अलावा - सांप्रदायिक शब्दार्थ का आविष्कार ज्यादातर इसलिए किया गया क्योंकि उस समय (1960):λ
- परिचालन शब्दार्थों के बारे में तर्क करना मुश्किल हो जाता था।
- गैर-तुच्छ भाषाओं में स्वयंसिद्ध शब्दार्थ देना कठिन था।
समस्या का हिस्सा यह था कि कार्यक्रमों की समानता की धारणा इतनी अच्छी तरह से समझ में नहीं आई थी जितनी अब है। मैं तर्क दूंगा कि दोनों समस्याओं को काफी हद तक समाप्त कर दिया गया है, (1) उदाहरण के लिए प्रक्रिया सिद्धांत से आने वाली बायिसिमुलेशन आधारित तकनीकों द्वारा (जिसे परिचालन शब्दार्थों के एक विशिष्ट रूप के रूप में देखा जा सकता है) या उदाहरण के लिए पिट्स ऑपरेशनल शब्दार्थ और कार्यक्रम पर काम करते हैं। समतुल्यता, और (2) जैसे कि जुदाई तर्क या होएर लॉजिक्स, टाइप किए गए embed-कैल्सी में प्रोग्रामिंग भाषा एम्बेडिंग के माध्यम से हेनेसी-मिलनर लॉजिक्स के टाइप किए गए संस्करणों के रूप में व्युत्पन्न। ध्यान दें कि प्रोग्राम लॉजिक्स (= स्वयंसिद्ध शब्दार्थ) भी रचनात्मक हैं।
संप्रदायात्मक शब्दार्थ को देखने का एक अन्य तरीका यह है कि कई प्रोग्रामिंग भाषाएं हैं और वे सभी समान दिखती हैं, इसलिए शायद हम एक सरल, अभी तक सार्वभौमिक मेटा-भाषा पा सकते हैं, और सभी प्रोग्रामिंग भाषाओं को उस मेटा से एक रचनात्मक तरीके से मैप कर सकते हैं- भाषा: हिन्दी। 1960 के दशक में, यह सोचा गया कि कुछ टाइप किए गए -calculus यह मेटा-भाषा है। एक तस्वीर 1000 शब्दों से अधिक कह सकती है:λ
इस दृष्टिकोण का क्या फायदा है? शायद यह एक आर्थिक POV से इसे देखने के लिए समझ में आता है। यदि हम ऑब्जेक्ट प्रोग्राम के एक वर्ग के बारे में कुछ दिलचस्प साबित करना चाहते हैं तो हमारे पास दो विकल्प हैं।
इसे सीधे ऑब्जेक्ट स्तर पर साबित करें।
साबित करें कि मेटा-लेवल (और बैक) में अनुवाद संपत्ति को संरक्षित करता है, और फिर मेटा-लेवल के लिए इसे साबित करता है, और फिर परिणाम को ऑब्जेक्ट स्तर पर वापस धकेलता है।
उत्तरार्द्ध की संयुक्त लागत शायद पूर्व की लागत से अधिक है, लेकिन अनुवाद को साबित करने की लागत भविष्य के सभी उपयोगों पर परिशोधन की जा सकती है, जबकि मेटा-स्तर के लिए संपत्ति साबित करने का खर्च प्रमाण की तुलना में बहुत छोटा है वस्तु स्तर पर।
डीनोटेशनल शब्दार्थ के लिए मूल आदेश-सिद्धांत संबंधी दृष्टिकोण अब तक इस वादे पर खरा नहीं उतरा है, क्योंकि जटिल भाषा सुविधाएँ जैसे ऑब्जेक्ट ओरिएंटेशन, कंसीडर और वितरित संगणना को अभी तक सटीक क्रम-सिद्धांत शब्दार्थ नहीं दिया गया है। "सटीक" से मेरा मतलब शब्दार्थ है जो ऐसी भाषाओं के प्राकृतिक परिचालन शब्दार्थ से मेल खाता है।
क्या यह मूल्यपरक शब्दार्थ सीखने के लायक है? यदि आप अर्थ-सिद्धांत का अर्थ है, जो कि शब्द-संबंधी शब्दार्थ के लिए है, तो शायद नहीं, जब तक कि आप प्रोग्रामिंग भाषाओं के सिद्धांत में काम नहीं करना चाहते हैं और पुराने कागजात को समझने की आवश्यकता है। आदेश-सिद्धांत संबंधी दृष्टिकोणों को डीनोटेशनल शब्दार्थ सीखने का एक अन्य कारण इस दृष्टिकोण की सुंदरता है।