Value restriction
پروگرامنگ زبانوں میں ہندلے ملنر قسم کے تخمینے اور لازمی خصوصیات کے ساتھ، خاص طور پر ایم ایل پروگرامنگ زبان کے خاندان میں، قدر کی پابندی کا مطلب یہ ہے کہ اعلانات کو صرف پولیمرفیکل طور پر عام کیا جاتا ہے اگر وہ نحو اقدار ہوں (جسے غیر توسیعی بھی کہا جاتا ہے)۔ قدر کی پابندی حوالہ خلیوں کو مختلف اقسام کی اقدار کو رکھنے سے روکتی ہے اور قسم کی حفاظت کو محفوظ رکھتی ہے۔ ٹائپ سیفٹی کے لیے ایک جوابی مثال ہندلے ملنر قسم کے نظام میں، پیرامیٹرک پولیمرفزم کے ذریعے تاثرات کو متعدد اقسام دی جا سکتی ہیں۔ لیکن بے وقوفانہ طور پر حوالہ جات کو متعدد اقسام دینا قسم کی حفاظت کو توڑ دیتا ہے۔ ایم ایل جیسی زبانوں میں حوالہ جات اور متعلقہ آپریٹرز کے لیے درج ذیل ٹائپنگ کے اصول ہیں۔ آپریٹرز کے پاس درج ذیل الفاظ ہوتے ہیں: ایک قدر لیتا ہے اور اس قدر پر مشتمل ایک حوالہ تخلیق کرتا ہے، (حوالہ) ایک حوالہ لیتا ہے اور اس حوالہ میں قدر کو پڑھتا ہے، اور (تفویض) ایک نئی قدر پر مشتمل ہونے کے لیے ایک حوالہ کو اپ ڈیٹ کرتا ہے اور یونٹ کی قسم کی قیمت واپس کرتا ہے۔ ان کو دیکھتے ہوئے، مندرجہ ذیل پروگرام غیر مستحکم طور پر ایک فنکشن کا اطلاق کرتا ہے جس کا مطلب c میں بولین value.let ویل c = ریف (fn x => x) کے لیے ہوتا ہے: = (fn x => x + 1) ؛! c ٹرو اینڈ۔ مندرجہ بالا پروگرام ٹائپ ہینڈلی ملنر کا استعمال کرتے ہوئے چیک کرتا ہے کیونکہ c کو ٹائپ دیا جاتا ہے، جسے اسائنمنٹ c: = (fn x => x + 1) ٹائپ کرتے وقت فوری طور پر ٹائپ کیا جاتا ہے، اور حوالہ ٹائپ کرتے وقت ریف! c ٹرو۔ قدر کی پابندی قدر کی پابندی کے تحت، لیٹ باؤنڈ تاثرات کی اقسام کو صرف اس صورت میں عام کیا جاتا ہے جب تاثرات نحو اقدار ہوں۔ اپنے مقالے میں، رائٹ مندرجہ ذیل کو نحو اقدار سمجھتے ہیں: مستقل، متغیر،-تاثرات اور اقدار پر لاگو کنسٹرکٹر۔ فنکشن اور آپریٹر ایپلی کیشنز کو اقدار نہیں سمجھا جاتا ہے۔ خاص طور پر، آپریٹر کی ایپلی کیشنز کو عام نہیں کیا جاتا ہے۔ نحو اقدار کے قسم کے متغیرات کو عام کرنا محفوظ ہے کیونکہ ان کی تشخیص کسی حوالہ پر لکھنے جیسے کسی ضمنی اثرات کا سبب نہیں بن سکتی ہے۔ مندرجہ بالا مثال کو درج ذیل قدر کی پابندی کے تحت ٹائپ چیکر نے مسترد کر دیا ہے۔ پہلے سی کو ٹائپ دیا جاتا ہے۔ اس قسم کو عام نہیں کیا گیا ہے اور یہ لیٹ بائنڈنگ کے باڈی کے لیے ٹائپنگ کے سیاق و سباق میں ایک آزاد متغیر ہے۔ جب اسائنمنٹ ٹائپ کی جاتی ہے، تو سی کی قسم کو ٹائپنگ کے تناظر میں یونیفیکیشن کے ذریعے ٹائپ کرنے کے لیے تبدیل کیا جاتا ہے۔ ڈیریفرینس! سی کو اس طرح ٹائپ کیا جاتا ہے، لیکن اس کا اطلاق ٹائپ کی قدر پر ہوتا ہے، اور ٹائپ چیکر پروگرام کو مسترد کرتا ہے۔ ہینڈلی ملنر قسم کا تخمینہ حوالہ جات میڈز ٹوفٹے (1988) بھی دیکھیں۔ آپریشنل سیمنٹکس اور پولیمرفک ٹائپ انفریشن۔ پی ایچ ڈی تھیسس۔ ایم۔ ٹوفٹے (1990)۔ "پولیمرفک حوالہ جات کے لیے قیاس ٹائپ کریں"۔ او ٹول (1990)۔ "حوالہ کے لیے تجریدی اصول ٹائپ کریں: چار کا موازنہ جنہوں نے بدنامی حاصل کی ہے۔" زیویئر لیرائے اور پیئر ویس (1991)۔ "پولیمرفک قسم کا تخمینہ اور تفویض"۔ پی او پی ایل '91۔ اے کے رائٹ (1992)۔ "حوالہ جات کو اثر کے ذریعے ٹائپ کرنا"۔ مائی ہونگ، جان سی مچل اور رمیش وشوناتھن (1993)۔ "معیاری ایم ایل-این جے کمزور پولیمرفزم اور لازمی تعمیرات"۔ اینڈریو رائٹ (1995)۔ "سادہ لازمی پولیمرفزم"۔ LISP اور علامتی حساب میں، p. 343-356۔ جیکس گیریگ (2004)۔ "قدر کی پابندی میں نرمی"۔ بیرونی روابط قدر کی پابندی-ایس ایم ایل 97 کی قدر کی پابندی پر ایم ایلٹن نوٹس-پروگرامنگ زبانوں کے اصول، جیفری اسمتھ، فلوریڈا انٹرنیشنل یونیورسٹی ٹائپ انفرنس