Value restriction
હિન્ડલી-મિલનર પ્રકારનાં અનુમાન અને અનિવાર્ય સુવિધાઓ ધરાવતી પ્રોગ્રામિંગ ભાષાઓમાં, ખાસ કરીને એમ. એલ. પ્રોગ્રામિંગ લેંગ્વેજ ફેમિલીમાં, મૂલ્ય પ્રતિબંધનો અર્થ એ છે કે ઘોષણાઓ માત્ર બહુરૂપી રીતે સામાન્યીકૃત થાય છે જો તે વાક્યરચના મૂલ્યો હોય (જેને બિન-વિસ્તૃત પણ કહેવાય છે). મૂલ્ય પ્રતિબંધ સંદર્ભ કોષોને વિવિધ પ્રકારનાં મૂલ્યો રાખવાથી અટકાવે છે અને પ્રકાર સુરક્ષાને જાળવી રાખે છે. પ્રકાર સલામતીનું પ્રતિકૂળ ઉદાહરણ હિન્દલી-મિલનર પ્રકારની પ્રણાલીમાં, અભિવ્યક્તિઓને પેરામેટ્રિક પોલીમોર્ફિઝમ દ્વારા બહુવિધ પ્રકારો આપી શકાય છે. પરંતુ નિષ્કપટપણે સંદર્ભોને બહુવિધ પ્રકારો આપવાથી સલામતીના પ્રકારનો ભંગ થાય છે. સંદર્ભો અને સંબંધિત ઓપરેટરો માટે એમ. એલ. જેવી ભાષાઓમાં નીચેના ટાઇપિંગ નિયમો છે. ઓપરેટરો પાસે નીચેના સિમેન્ટિક્સ હોય છેઃ મૂલ્ય લે છે અને તે મૂલ્ય ધરાવતો સંદર્ભ બનાવે છે, (સંદર્ભ) સંદર્ભ લે છે અને તે સંદર્ભમાં મૂલ્ય વાંચે છે, અને (સોંપણી) નવા મૂલ્યને સમાવવા માટે સંદર્ભને અપડેટ કરે છે અને એકમ પ્રકારનું મૂલ્ય આપે છે. આને જોતાં, નીચેનો પ્રોગ્રામ c: = (fn x => x + 1) માં બુલિયન value.let વેલ c = રીફ (fn x => x) માટે પૂર્ણાંકો માટેના કાર્યને અસ્પષ્ટ રીતે લાગુ કરે છે;! c સાચો અંત. ઉપરનો પ્રોગ્રામ પ્રકાર હિન્ડલી-મિલનરનો ઉપયોગ કરીને તપાસે છે કારણ કે c ને પ્રકાર આપવામાં આવ્યો છે, જે પછી સોંપણી c: = (fn x => x + 1) લખતી વખતે તે પ્રકારનો હોવાનું તાત્કાલિક દર્શાવવામાં આવે છે, અને સંદર્ભ લખતી વખતે સંદર્ભ! c સાચો. મૂલ્ય પ્રતિબંધ મૂલ્ય પ્રતિબંધ હેઠળ, લેટ બાઉન્ડ અભિવ્યક્તિઓના પ્રકારો ફક્ત ત્યારે જ સામાન્યીકૃત થાય છે જ્યારે અભિવ્યક્તિઓ વાક્યરચના મૂલ્યો હોય. તેમના પેપરમાં, રાઈટ નીચેની બાબતોને વાક્યરચના મૂલ્યો માને છેઃ સ્થિરાંકો, ચલ,-સમીકરણો અને મૂલ્યો પર લાગુ કરાયેલા કન્સ્ટ્રક્ટર્સ. ફંક્શન અને ઓપરેટર એપ્લિકેશન્સને મૂલ્યો ગણવામાં આવતા નથી. ખાસ કરીને, ઓપરેટરની એપ્લિકેશનો સામાન્યીકૃત નથી. વાક્યરચના મૂલ્યોના પ્રકાર ચલોનું સામાન્યીકરણ કરવું સલામત છે કારણ કે તેમનું મૂલ્યાંકન સંદર્ભમાં લખવા જેવી કોઈ આડઅસરોનું કારણ બની શકતું નથી. ઉપરોક્ત ઉદાહરણને મૂલ્ય પ્રતિબંધ હેઠળ ટાઇપ ચેકર દ્વારા નીચે પ્રમાણે નકારી કાઢવામાં આવે છે. પ્રથમ સી પ્રકાર આપવામાં આવે છે. આ પ્રકાર સામાન્યીકૃત નથી અને લેટ બાઈન્ડીંગના મુખ્ય ભાગ માટે ટાઇપિંગ સંદર્ભમાં મુક્ત ચલ છે. જ્યારે સોંપણી ટાઇપ કરવામાં આવે છે, ત્યારે સી નો પ્રકાર ટાઇપિંગ સંદર્ભમાં એકીકરણ દ્વારા પ્રકાર તરીકે સુધારવામાં આવે છે. સંદર્ભ! સી તરીકે ટાઇપ કરવામાં આવે છે, પરંતુ તે પ્રકારનાં મૂલ્ય પર લાગુ થાય છે, અને પ્રકાર તપાસનાર પ્રોગ્રામને નકારી કાઢે છે. હિન્ડલી-મિલનર પ્રકારનો અનુમાન સંદર્ભો મેડસ ટોફ્ટે (1988) પણ જુઓ. ઓપરેશનલ સિમેન્ટિક્સ અને પોલીમોર્ફિક પ્રકાર અનુમાન. પીએચડી થીસિસ. એમ. ટોફ્ટે (1990). "બહુરૂપી સંદર્ભો માટે અનુમાન લખો". ઓ 'ટોલ (1990). "સંદર્ભ માટે અમૂર્ત નિયમો લખોઃ ચારની સરખામણી જેણે અપકીર્તિ પ્રાપ્ત કરી છે". ઝેવિયર લેરોય અને પિયર વેઇસ (1991). "પોલીમોર્ફિક પ્રકાર અનુમાન અને સોંપણી". પી. ઓ. પી. એલ 91. એ. કે. રાઈટ (1992) "અસર અનુમાન દ્વારા સંદર્ભો લખવા". માય હોઆંગ, જ્હોન સી. મિશેલ અને રમેશ વિશ્વનાથન (1993). "પ્રમાણભૂત એમ. એલ.-એન. જે. નબળા બહુરૂપતા અને અનિવાર્ય રચનાઓ". એન્ડ્રુ રાઈટ (1995). "સરળ અનિવાર્ય બહુરૂપતા". LISP અને પ્રતીકાત્મક ગણતરીમાં, p. 343-356. જેક્સ ગેરિગ (2004). "મૂલ્ય પ્રતિબંધમાં છૂટછાટ". બાહ્ય કડીઓ મૂલ્ય પ્રતિબંધ-એસ. એમ. એલ. 97ના મૂલ્ય પ્રતિબંધ પર એમ. એલ. ટી. એન. નોંધો-પ્રોગ્રામિંગ ભાષાઓના સિદ્ધાંતો, જ્યોફ્રી સ્મિથ, ફ્લોરિડા ઇન્ટરનેશનલ યુનિવર્સિટી પ્રકાર અનુમાન