Value restriction
हिंडले-मिलनर प्रकार के अनुमान और अनिवार्य विशेषताओं वाली प्रोग्रामिंग भाषाओं में, विशेष रूप से एम. एल. प्रोग्रामिंग भाषा परिवार में, मूल्य प्रतिबंध का अर्थ है कि घोषणाओं को केवल बहुरूपी रूप से सामान्यीकृत किया जाता है यदि वे वाक्य रचना मूल्य हैं (जिन्हें गैर-विस्तारक भी कहा जाता है)। मूल्य प्रतिबंध संदर्भ कोशिकाओं को विभिन्न प्रकार के मूल्यों को धारण करने से रोकता है और प्रकार सुरक्षा को संरक्षित करता है। सुरक्षा प्रकार के लिए एक विपरीत उदाहरण हिंडले-मिलनर प्रकार प्रणाली में, अभिव्यक्तियों को पैरामीट्रिक बहुरूपता के माध्यम से कई प्रकार दिए जा सकते हैं। लेकिन सरलता से संदर्भों को कई प्रकार देना प्रकार की सुरक्षा को तोड़ता है। एम. एल. जैसी भाषाओं में संदर्भों और संबंधित प्रचालक के लिए निम्नलिखित टाइपिंग नियम हैं। प्रचालक के पास निम्नलिखित शब्दार्थ होते हैंः एक मूल्य लेता है और उस मूल्य वाला एक संदर्भ बनाता है, (संदर्भ) एक संदर्भ लेता है और उस संदर्भ में मूल्य को पढ़ता है, और (असाइनमेंट) एक नए मूल्य को शामिल करने के लिए एक संदर्भ को अपडेट करता है और इकाई प्रकार का मूल्य देता है। इन्हें देखते हुए, निम्नलिखित प्रोग्राम सीः = (एफएन एक्स => एक्स + 1) में एक बूलियन value.let वैल सी = रेफ (एफएन एक्स => एक्स) के लिए पूर्णांकों के लिए एक फ़ंक्शन को अनुचित रूप से लागू करता है! सी सही अंत. उपरोक्त प्रोग्राम प्रकार हिंडले-मिलनर का उपयोग करके जाँच करता है क्योंकि सी को प्रकार दिया जाता है, जिसे असाइनमेंट सीः = (एफएन एक्स => एक्स + 1) टाइप करते समय तुरंत उस प्रकार का माना जाता है, और संदर्भ टाइप करते समय रेफ! सी सही। मूल्य प्रतिबंध मूल्य प्रतिबंध के तहत, लेट बाउंड अभिव्यक्तियों के प्रकार केवल तभी सामान्यीकृत किए जाते हैं जब अभिव्यक्तियाँ वाक्यात्मक मान हों। अपने शोध पत्र में, राइट निम्नलिखित वाक्य रचना मूल्यों को मानते हैंः स्थिरांक, चर,-अभिव्यक्तियाँ और मूल्यों पर लागू होने वाले निर्माता। फ़ंक्शन और प्रचालक अनुप्रयोगों को मान नहीं माना जाता है। विशेष रूप से, प्रचालक के अनुप्रयोग सामान्यीकृत नहीं हैं। वाक्य रचना मूल्यों के प्रकार चर को सामान्यीकृत करना सुरक्षित है क्योंकि उनका मूल्यांकन किसी संदर्भ को लिखने जैसे किसी भी दुष्प्रभाव का कारण नहीं बन सकता है। उपरोक्त उदाहरण को मूल्य प्रतिबंध के तहत टाइप चेकर द्वारा अस्वीकार कर दिया गया है। पहले सी को प्रकार दिया जाता है। यह प्रकार सामान्यीकृत नहीं है और लेट बाइंडिंग के मुख्य भाग के लिए टाइपिंग संदर्भ में एक मुक्त चर है। जब असाइनमेंट टाइप किया जाता है, तो सी के प्रकार को एकीकरण के माध्यम से टाइप करने के संदर्भ में संशोधित किया जाता है। संदर्भ! सी के रूप में टाइप किया जाता है, लेकिन प्रकार के मान पर लागू किया जाता है, और प्रकार जाँचक प्रोग्राम को अस्वीकार कर देता है। हिंडले-मिलनर प्रकार का अनुमान संदर्भ मैड्स टोफ्टे (1988) भी देखें। परिचालन शब्दार्थ और बहुरूपी प्रकार का अनुमान। पीएचडी थीसिस। एम. टोफ्टे (1990)। "बहुरूपी संदर्भों के लिए अनुमान टाइप करें।" ओ 'टोल (1990)। "संदर्भ के लिए सार नियम लिखेंः चार की तुलना जिन्होंने कुख्याति हासिल की है।" जेवियर लेरॉय और पियरे वीस (1991)। "बहुरूपी प्रकार का अनुमान और कार्य"। पी ओ पी एल '91। ए. के. राइट (1992)। "प्रभाव अनुमान द्वारा संदर्भ टाइप करना"। माई होआंग, जॉन सी. मिशेल और रमेश विश्वनाथन (1993)। "मानक एमएल-एनजे कमजोर बहुरूपता और अनिवार्य निर्माण"। एंड्रयू राइट (1995)। "सरल अनिवार्य बहुरूपता"। एल. आई. एस. पी. और प्रतीकात्मक गणना में, पी. 343-356। जैक्स गैरिग (2004)। "मूल्य प्रतिबंध में ढील"। बाहरी लिंक मूल्य प्रतिबंध-एस. एम. एल. 97 के मूल्य प्रतिबंध पर एम. एल. टी. एन. टिप्पणियाँ-प्रोग्रामिंग भाषाओं के सिद्धांत, जेफ्री स्मिथ, फ्लोरिडा अंतर्राष्ट्रीय विश्वविद्यालय प्रकार अनुमान