एक कार्यक्रम का शब्दार्थ उसके व्यवहार का एक मॉडल है, जो किसी भी वैज्ञानिक मॉडल की तरह, उन पहलुओं की उपेक्षा करता है जिन्हें आप अध्ययन नहीं करना चाहते हैं।
एक कार्यक्रम के निष्पादन का एक अत्यंत विस्तृत मॉडल निष्पादन के समय, बिजली की खपत, विद्युत चुम्बकीय विकिरण सहित कंप्यूटर के भौतिक व्यवहार को मॉडल करेगा, इस तरह के पहलुओं को बहुत कम ही ध्यान में रखा जाता है क्योंकि वे बहुत कम प्रासंगिक हैं। फिर भी वे कभी-कभी मायने रखते हैं: एक हवाई जहाज के ऑटोपायलट के एक उपयोगी मॉडल में रनटाइम जानकारी शामिल करने की आवश्यकता होती है, क्रेडिट कार्ड की सुरक्षा का एक उपयोगी मॉडल विद्युत चुम्बकीय विकिरण को शामिल करने की आवश्यकता है, ...
विशिष्ट शब्दार्थ में, समय और बिजली की खपत जैसे दुष्प्रभावों को अनदेखा किया जाता है। यहां तक कि अगर एक सांस की सेटिंग में जहां आप एक हास्केल दुभाषिया प्रॉम्प्ट पर एक अभिव्यक्ति टाइप करते हैं, तो परिणाम का मुद्रण एक साइड इफेक्ट है (यदि आप एक अनंत वस्तु को प्रिंट करने की कोशिश करते हैं, तो यह मायने रखता है)। यदि हास्केल दुभाषिया स्मृति से बाहर निकलता है, तो यह "वास्तविक दुनिया" मॉडल में एक अवलोकन योग्य प्रभाव है, लेकिन हास्केल के एक आदर्श मॉडल में नहीं है जो प्रभावी रूप से अनबाउंड कम्प्यूटेशन की अनुमति देता है।
एक नमूदार साइड इफेक्ट वह है जो शब्दार्थ में प्रतिरूपित है। प्रोग्रामिंग भाषाओं के विशिष्ट मॉडलों में, मेमोरी की खपत को मॉडल नहीं किया जाता है, इसलिए एक गणना जिसमें 1TB भंडारण की आवश्यकता होती है, वह शुद्ध हो सकती है, भले ही आप इसे अपने पीसी पर चलाने की कोशिश करें, लेकिन यह पूरी तरह से विफल हो जाएगा।
एक और तरह का नॉन-ऑब्जर्वेबल साइड इफेक्ट वह है जो फ़ंक्शन के लिए आंतरिक है। यह है, मुझे लगता है कि गैर-अवलोकन योग्य दुष्प्रभावों के बारे में बात करते समय अधिकांश अर्थशास्त्री क्या सोचते हैं। एक संगणना पर विचार करें जो आंतरिक रूप से उत्परिवर्तित डेटा का उपयोग करता है, लेकिन इस उत्परिवर्तित डेटा को कार्यक्रम के किसी अन्य भाग के साथ साझा नहीं करता है। उदाहरण के लिए, एक सूची सॉर्टिंग फ़ंक्शन जो सूची के समान तत्वों के साथ एक सरणी बनाता है, जगह में सरणी को सॉर्ट करता है, और अपने अंतिम क्रम में सरणी के रूप में तत्वों से युक्त एक सूची देता है: इस फ़ंक्शन के उप-संदर्भों का एक सिमेंटिक मॉडल प्रदर्शित करता है प्रभाव (सरणी के संशोधन), लेकिन फ़ंक्शन का कोई बाहरी साइड इफेक्ट नहीं है, इसलिए यह शुद्ध है।
अधिक सूक्ष्म उदाहरण के लिए, एक फ़ंक्शन पर विचार करें जो कुछ डेटा को एक अस्थायी फ़ाइल में लिखता है और स्वयं के बाद साफ करता है। एक शब्दार्थ में जहां अस्थायी फ़ाइलों के लिए हमेशा पर्याप्त जगह होती है और प्रोग्राम अस्थायी फ़ाइलों को साझा नहीं करते हैं, फ़ंक्शन का कोई दुष्प्रभाव नहीं होता है; अस्थायी फ़ाइल फ़ंक्शन द्वारा उपयोग की गई अतिरिक्त मेमोरी के रूप में कार्य करती है। एक शब्दार्थ में जो फाइलसिस्टम को पूर्ण स्थिति में लेता है, फ़ंक्शन का साइड इफेक्ट होता है - यह बाहरी परिस्थितियों के कारण विफल हो सकता है। एक शब्दार्थ में जो मशीन को क्रैश करने की अनुमति देता है, फ़ंक्शन का साइड इफेक्ट होता है: यदि फ़ंक्शन के निष्पादन के दौरान कोई दुर्घटना होती है, तो अस्थायी फ़ाइल पीछे रह सकती है। एक शब्दार्थ में, जो समवर्ती निष्पादित कार्यक्रमों को देखने और शायद अस्थायी फ़ाइल को संशोधित करने की अनुमति देता है, फ़ंक्शन का एक साइड इफेक्ट है।