क्रिवाइन मशीन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
[[सैद्धांतिक कंप्यूटर विज्ञान]] में, '''मशीन वक्र''' ''[[अमूर्त मशीन]]'' है (कभी-कभी इसे ''[[ आभासी मशीन |आभासी मशीन]]'' भी कहा जाता है)। अमूर्त मशीन के रूप में, यह [[ट्यूरिंग मशीन]] और [[एसईसीडी मशीन]] के साथ सुविधाएँ साझा करती है। वक्र मशीन बताती है कि पुनरावर्ती समारोह की गणना कैसे करें। अधिक विशेष रूप से इसका उद्देश्य [[नाम से बुलाओ]] कमी का उपयोग करके [[लैम्ब्डा कैलकुलस|लैम्ब्डा गणना]] के सामान्य रूप में कमी को सख्ती से परिभाषित करना है। इसकी औपचारिकता के लिए धन्यवाद, यह विवरण में बताता है कि प्रकार की कमी कैसे काम करती है और [<nowiki/>[[कार्यात्मक प्रोग्रामिंग]]] भाषाओं के [[परिचालन शब्दार्थ]] की सैद्धांतिक नींव निर्धारित करती है। दूसरी ओर, वक्र मशीन कॉल-बाय-नाम लागू करती है क्योंकि यह समारोह शरीर को उसके पैरामीटर पर लागू करने से पहले β-[[ कम करने योग्य अभिव्यक्ति | कम करने योग्य अभिव्यक्ति]] के शरीर का मूल्यांकन करती है। दूसरे शब्दों में, अभिव्यक्ति (''λ'' ''x''. ''t'') ''u'' में यह पहले ''λ'' ''x'' का मूल्यांकन करता है। इसे ''यू'' पर लागू करने से पहले ''टी'' कार्यात्मक प्रोग्रामिंग में, इसका मतलब यह होगा कि किसी पैरामीटर पर लागू समारोह का मूल्यांकन करने के लिए, यह पैरामीटर पर लागू करने से पहले समारोह का मूल्यांकन करता है।
[[सैद्धांतिक कंप्यूटर विज्ञान]] में, '''मशीन वक्र''' ''[[अमूर्त मशीन]]'' है (कभी-कभी इसे ''[[ आभासी मशीन |आभासी मशीन]]'' भी कहा जाता है)। अमूर्त मशीन के रूप में, यह [[ट्यूरिंग मशीन]] और [[एसईसीडी मशीन]] के साथ सुविधाएँ साझा करती है। क्रिवाइन मशीन ऐसी प्रतिष्ठानिक मशीन है जो रिकर्सिव फ़ंक्शन को कैसे कंप्यूट करती है को परिभाषित करने का प्रयास करती है। अधिक विशेष रूप से इसका उद्देश्य [[नाम से बुलाओ]] कमी का उपयोग करके [[लैम्ब्डा कैलकुलस|लैम्ब्डा गणना]] के सामान्य रूप में कमी को सख्ती से परिभाषित करना है। इसकी औपचारिकता के कारण, यह विवरण में बताता है कि प्रकार की कमी कैसे काम करती है और [[कार्यात्मक प्रोग्रामिंग]]भाषाओं के [[परिचालन शब्दार्थ]] की सैद्धांतिक नींव निर्धारित करती है। दूसरी ओर, वक्र मशीन कॉल-बाय-नाम को लागू करती है इसमें β-[[ कम करने योग्य अभिव्यक्ति | कम करने योग्य अभिव्यक्ति]] को उसके पैरामीटर पर लागू करने से पहले उसे निर्धारित किया जाता है। अन्य शब्दों में, अभिव्यक्ति (''λ'' ''x''. ''t'') ''u'' में यह पहले ''λ'' ''x'' को निर्धारित किया जाता है और फिर उसे u पर लागू किया जाता है। फ़ंक्शनल प्रोग्रामिंग में, यह यह मतलब होता है कि पैरामीटर पर लागू किए गए फ़ंक्शन को मूल्यांकित करने के लिए, इसे पहले फ़ंक्शन को मूल्यांकित किया जाता है।


वक्र मशीन को 1980 के दशक की प्रारंभिक में फ्रांसीसी तर्कशास्त्री :fr:जीन-लुई वक्र जीन-लुई वक्र द्वारा डिजाइन किया गया था।
क्रिवाइन मशीन को फ्रांसीसी तार्किक विद्वान जीन-लुई क्रिवाइन ने 1980 के दशक की शुरुआत में डिज़ाइन किया था।


== नाम और सिर से बुलाएं सामान्य रूप में कमी ==
== नाम और सिर से बुलाएं सामान्य रूप में कमी ==
{{more|लैम्ब्डा कैलकुलस}}
{{more|लैम्ब्डा कैलकुलस}}


वक्र मशीन लैम्ब्डा गणना से संबंधित दो अवधारणाओं पर आधारित है, अर्थात् सिर में कमी और नाम से कॉल पर आधारित है|
वक्र मशीन लैम्ब्डा गणना से संबंधित दो अवधारणाओं पर आधारित है, अर्थात् हेड रिडक्शन और नाम से कॉल पर आधारित है|


=== सिर सामान्य रूप में कमी ===
=== सिर सामान्य रूप में कमी ===


लैम्ब्डा गणना कमी<ref>{{Citation
रेडेक्स<ref>{{Citation
  |last=Barendregt  
  |last=Barendregt  
  |first=Hendrik Pieter  
  |first=Hendrik Pieter  
Line 25: Line 25:
  |archivedate=2004-08-23  
  |archivedate=2004-08-23  
}}  [ftp://ftp.cs.ru.nl/pub/CompMath.Found/ErrataLCalculus.pdf Corrections].
}}  [ftp://ftp.cs.ru.nl/pub/CompMath.Found/ErrataLCalculus.pdf Corrections].
</ref> ( यह भी कहता है कि β-रीडेक्स) फॉर्म (λ x. t) u के लैम्ब्डा गणना का शब्द है। यदि किसी पद का आकार (λ x. t) u है<sub>1</sub> ... में<sub>''n''</sub> इसे हेड रिडेक्स कहा जाता है। [[बीटा सामान्य रूप]] लैम्ब्डा गणना का शब्द है जो हेड रिडेक्स नहीं है।{{efn|If one only deals with closed terms, these terms take the form ''λ'' ''x''. ''t''.}} सिर में कमी शब्द के संकुचन का (गैर-खाली) अनुक्रम है जो हेड रिडेक्स को अनुबंधित करता है। किसी अवधि टी का सिर में कमी (जिसे सिर सामान्य रूप में नहीं माना जाता है) सिर में कमी है जो अवधि टी से शुरू होता है और सिर सामान्य रूप पर खत्म होता है। अमूर्त दृष्टिकोण से, सिर में कमी वह विधि है जिससे प्रोग्राम गणना करता है जब वह पुनरावर्ती उप-प्रोग्राम का मूल्यांकन करता है। यह समझना महत्वपूर्ण है कि ऐसी कटौती कैसे लागू की जा सकती है। वक्र मशीन का उद्देश्य किसी शब्द को सामान्य रूप में कम करने और इस प्रक्रिया का औपचारिक रूप से वर्णन करने के लिए प्रक्रिया का प्रस्ताव करना है। जैसे [[एलन ट्यूरिंग]] ने कलन विधि की धारणा का औपचारिक रूप से वर्णन करने के लिए अमूर्त मशीन का उपयोग किया, :fr: जीन-लुई क्रिविन ने सिर के सामान्य रूप में कमी की धारणा का औपचारिक रूप से वर्णन करने के लिए अमूर्त मशीन का उपयोग किया जाता है।
</ref> (बीटा-रेडेक्स भी कहा जाता है) लैम्बडा गणना का पद होता है जिसकी रूप में (''λ'' ''x''. ''t'') ''u'' होता है। अगर पद की आकृति (''λ'' ''x''. ''t'') ''u''<sub>1</sub> ... ''u<sub>n</sub>'' होती है, तो उसे हेड रेडेक्स कहा जाता है। [[बीटा सामान्य रूप]] लैम्ब्डा गणना का पद है जो हेड रिडेक्स नहीं है।{{efn|If one only deals with closed terms, these terms take the form ''λ'' ''x''. ''t''.}} हेड रीडक्शन पद के (गैर खाली) क्रमबद्ध श्रिंखला होती है जो पद के हेड रेडेक्स को श्रिंकलेट करती है। पद t की हेड रीडक्शन (जिसे हेड नॉर्मल फ़ॉर्म में नहीं होने का समझा जाता है) हेड रीडक्शन है जो पद t से शुरू होती है और हेड नॉर्मल फ़ॉर्म पर समाप्त होती है। अभिकल्पिक दृष्टिकोण से, हेड रीडक्शन प्रोग्राम की प्रक्रिया है जब वह पुनरावृत्तिशील उप-प्रोग्राम का मूल्यांकन करता है। इस तरह की श्रिंकलन को कैसे कार्यान्वित किया जा सकता है, इसे समझना महत्वपूर्ण है। क्रिवाइन मशीन का उद्देश्य हेड नॉर्मल फ़ॉर्म में पद को श्रिंकलने की प्रक्रिया प्रस्तावित करना है और इस प्रक्रिया को समय-समय पर वर्णित करना है। जैसे [[एलन ट्यूरिंग]] ने अवकाशी मशीन का उपयोग करके सामान्यता की नीति को समय-समय पर वर्णित किया, क्रिवाइन ने अवकाशी मशीन का उपयोग करके हेड नॉर्मल फ़ॉर्म श्रिंकलन की नीति को समय-समय पर वर्णित किया। जाता है।


==== '''उदाहरण''' ====
==== '''उदाहरण''' ====
शब्द ((λ 0) (λ 0)) (λ 0) (जो अस्पष्ट चरों का उपयोग करता है, उसे अवधि (λx.x) (λy.y) (λz.z) के लिए कहा जाता है) सिर सामान्य रूप में नहीं है क्योंकि (λ 0) (λ 0) को (λ 0) में संक्षेपित करता है, जिससे हेड रेडेक्स (λ 0) (λ 0) उत्पन्न होता है, जो (λ 0) में संक्षेपित होता है और जो कि इसलिए ((λ 0) (λ 0)) (λ 0) का सिर सामान्य रूप है। दूसरे शब्दों में कहा जाए, सिर सामान्य रूप संक्षेपण है:
पद ((λ 0) (λ 0)) (λ 0) (जो स्पष्ट प्रत्यक्ष चर का उपयोग करता है, इसके लिए पद (λx.x) (λy.y) (λz.z) होता है) हेड नॉर्मल फ़ॉर्म में नहीं है क्योंकि (λ 0) (λ 0) को श्रिंकलित करके (λ 0) का उत्पादन होता है, जिससे हेड रेडेक्स (λ 0) (λ 0) होता है जो (λ 0) में श्रिंकलित होता है और जो इसलिए ((λ 0) (λ 0)) (λ 0) का हेड नॉर्मल फ़ॉर्म होता है। अन्य शब्दों में, हेड नॉर्मल फ़ॉर्म का श्रिंकलन है:
: ((λ 0) (λ 0)) (λ 0) ➝ (λ 0) (λ 0) ➝ λ 0,
: ((λ 0) (λ 0)) (λ 0) ➝ (λ 0) (λ 0) ➝ λ 0,
जो इसके लिए है:
जो इसके लिए है:
Line 44: Line 44:
| publisher = Birkhaüser
| publisher = Birkhaüser
| year = 1993
| year = 1993
| edition =  2nd}}</ref> यह वर्तमान स्थिति को तब तक संशोधित करता है जब तक कि वह ऐसा नहीं कर सकता, जिस स्थिति में इसे सामान्य रूप प्राप्त होता है। यह शीर्ष सामान्य रूप गणना के परिणाम को दर्शाता है या त्रुटि उत्पन्न करता है, जिसका अर्थ है कि जिस शब्द से इसकी प्रारंभिक हुई है वह सही नहीं है। चूँकि, यह संक्रमणों के अनंत अनुक्रम में प्रवेश कर सकता है, जिसका अर्थ है कि यह जिस शब्द को कम करने का प्रयास करता है उसका कोई सामान्य रूप नहीं है और यह गैर-समाप्ति गणना से मेल खाता है।
| edition =  2nd}}</ref> यह वर्तमान स्थिति को तब तक संशोधित करता है जब तक कि वह ऐसा नहीं कर सकता, जिस स्थिति में इसे सामान्य रूप प्राप्त होता है। यह शीर्ष सामान्य रूप गणना के परिणाम को दर्शाता है या त्रुटि उत्पन्न करता है, जिसका अर्थ है कि जिस पद से इसकी प्रारंभिक हुई है वह सही नहीं है। चूँकि, यह संक्रमणों के अनंत अनुक्रम में प्रवेश कर सकता है, जिसका अर्थ है कि यह जिस पद को कम करने का प्रयास करता है उसका कोई सामान्य रूप नहीं है और यह गैर-समाप्ति गणना से मेल खाता है।


यह सिद्ध हो चुका है कि वक्र मशीन लैम्ब्डा-गणना में नेम सिर सामान्य रूप रिडक्शन द्वारा कॉल को सही ढंग से लागू करती है। इसके अतिरिक्त, वक्र मशीन नियतात्मक संकलन है, क्योंकि स्थिति का प्रत्येक नमूना अधिकतम मशीन संक्रमण से मेल खाता है।
प्रमाणित हो चुका है कि क्रिवाइन मशीन लैम्बडा-कैलकुलस में कॉल बाय नेम हेड नॉर्मल फ़ॉर्म श्रिंकलन का सही अनुपालन करती है। इसके अलावा, क्रिवाइन मशीन निर्णायक है, क्योंकि प्रत्येक स्थिति के पैटर्न का अधिकांश एक मशीन ट्रांजिशन के साथ संबंधित होता है।


=== स्थिति ===
=== स्थिति ===
स्थिति के तीन घटक हैं<ref name="Curien" />:# अवध
स्थिति के तीन होते हैं<ref name="Curien" />:
:# ढेर,
:# शब्द,
:# पर्यावरण।
:# स्टैक
:#वातावरण


यह शब्द डी ब्रुइज़न सूचकांकों वाला λ-शब्द है। ढेर और पर्यावरण ही पुनरावर्ती डेटा संरचना से संबंधित हैं। अधिक सटीक रूप से, पर्यावरण और ढेर ''<अवधि, पर्यावरण>'' जोड़ियों की सूचियाँ हैं, जिन्हें ''क्लोज़र'' कहा जाता है। निम्नलिखित में, किसी तत्व ''ए'' की सूची ℓ ( ढेर या पर्यावरण) के प्रमुख के रूप में प्रविष्टि '':ℓ'' लिखी जाती है, चूँकि खाली सूची □ लिखी जाती है। ढेर वह स्थान है जहां मशीन क्लोजर को संग्रहीत करती है जिसका मूल्यांकन किया जाना चाहिए, चूँकि पर्यावरण मूल्यांकन के समय निश्चित समय पर सूचकांक और क्लोजर के बीच संबंध है। पर्यावरण का पहला तत्व अनुक्रमणिका ''0'' से जुड़ा क्लोजर है, दूसरा तत्व अनुक्रमणिका ''1'' आदि से जुड़े क्लोजर से मेल खाता है। यदि मशीन को किसी अनुक्रमणिका का मूल्यांकन करना है, तो वह वहां जोड़ी लाती है। ''<अवधि, पर्यावरण>'' वह समापन जो मूल्यांकन किए जाने वाले शब्द को उत्पन्न करता है और वह वातावरण जिसमें इस शब्द का मूल्यांकन किया जाना चाहिए।{{efn|Using the concept of closure, one may replace the triple ''<term,stack, environment>'', which defines the state, by a couple ''<closure,stack>'', but this change is cosmetic.}} यह सहज स्पष्टीकरण मशीन के संचालन नियमों को समझने की अनुमति देता है। यदि कोई पद के लिए t, ढेर के लिए p लिखता है,{{efn|p is for ''pile'', the French word for stack, which we do not want to mix up with ''s'', for state.}} और पर्यावरण के लिए , इन तीन संस्थाओं से जुड़े स्थितिों को टी, पी, लिखा जाएगा। नियम बताते हैं कि कैसे मशीन स्थितिों के बीच नमूना की पहचान करने के बाद स्थिति को दूसरे स्थिति में बदल देती है।
शब्द डी ब्रुयन सूचकांकों के साथ लैम्बडा-शब्द होता है। स्टैक और वातावरण एक ही पुनरावृत्तिशील डेटा संरचना में होते हैं। अधिक सटीक रूप से, पर्यावरण और स्टैक  को ''<अवधि, पर्यावरण>'' के जोड़ों की सूची के रूप में प्रस्तुत किया जाता है, जिन्हें ''क्लोज़र'' कहा जाता है। निम्नलिखित में, किसी तत्व a की सूची ℓ ( स्टैक या पर्यावरण) के प्रमुख के रूप में प्रविष्टि a'':ℓ'' लिखी जाती है, चूँकि खाली सूची □ लिखी जाती है। स्टैक वह स्थान है जहां मशीन क्लोजर को संग्रहीत करती है जिसका मूल्यांकन किया जाना चाहिए, चूँकि पर्यावरण मूल्यांकन के समय निश्चित समय पर सूचकांक और क्लोजर के बीच संबंध है। पर्यावरण का पहला तत्व अनुक्रमणिका ''0'' से जुड़ा क्लोजर है, दूसरा तत्व अनुक्रमणिका ''1'' आदि से जुड़े क्लोजर से मेल खाता है। यदि मशीन को किसी अनुक्रमणिका का मूल्यांकन करना है, तो वह वहां जोड़ी लाती है। ''<अवधि, पर्यावरण>'' वह समापन जो मूल्यांकन किए जाने वाले पद को उत्पन्न करता है और वह वातावरण जिसमें इस पद का मूल्यांकन किया जाना चाहिए।{{efn|Using the concept of closure, one may replace the triple ''<term,stack, environment>'', which defines the state, by a couple ''<closure,stack>'', but this change is cosmetic.}} यह सहज स्पष्टीकरण मशीन के संचालन नियमों को समझने की अनुमति देता है। यदि कोई पद के लिए t, स्टैक के लिए p लिखता है,{{efn|p is for ''pile'', the French word for stack, which we do not want to mix up with ''s'', for state.}} और पर्यावरण के लिए e, इन तीन संस्थाओं से जुड़े स्थितिों को t, p, e लिखा जाएगा। नियम बताते हैं कि कैसे मशीन स्थितिों के बीच नमूना की पहचान करने के बाद स्थिति को दूसरे स्थिति में बदल देती है।


प्रारंभिक अवस्था का लक्ष्य किसी पद t का मूल्यांकन करना है, यह अवस्था t,□,□ है, जिसमें पद t है और ढेर और वातावरण खाली हैं। अंतिम स्थिति (त्रुटि के अभाव में) λ t, □, e के रूप में होती है, दूसरे शब्दों में, परिणामी शब्द अपने पर्यावरण और खाली ढेर के साथ अमूर्त है।
प्रारंभिक स्थिति एक शब्द t को मूल्यांकित करने का उद्देश्य रखती है, यह ''t'',□,□, की स्थिति है, जिसमें शब्द t है और स्टैक और वातावरण खाली हैं। अंतिम स्थिति (त्रुटि की अनुपस्थिति में) एक लैम्बडा''λ t'', □, e की आकृति होती है, अन्य शब्दों में, परिणामी शब्द एक विचारशक्ति के साथ होती है जिसका वातावरण होता है और एक खाली स्टैक होती है।


=== परिवर्तन ===
=== परिवर्तन ===
क्रिविन मशीन<ref name="Curien" />इसमें चार संक्रमण हैं: ''ऐप'', ''एब्स'', ''शून्य'', ''सक्स''।
क्रिविन मशीन<ref name="Curien" /> में चार स्थानांतरण होते हैं: ''ऐप'', ''एब्स'', ''शून्य'', ''सक्स''।
{| class="wikitable center" style = "width:50%"
{| class="wikitable center" style = "width:50%"
|+ क्रिवाइन मशीन का परिवर्तन
|+ क्रिवाइन मशीन के स्थानांतरण
|-
|-
! scope=col | Name
! scope=col |नाम
! scope=col | Before
! scope=col |पहले
! scope=col | After
! scope=col |बाद में
|-
|-
| width="20%" |
| width="20%" |''ऐप''
'''''App'''''  
| width="40%" |
| width="40%" |
''t u'', p, e
''t u'', p, e
Line 73: Line 73:
''t'', <''u'',e>:p, e
''t'', <''u'',e>:p, e
|-
|-
|
|''एब्स''
'''''Abs'''''
|
|
''λ t'', <''u'',e'>:p, e
''λ t'', <''u'',e'>:p, e
Line 80: Line 79:
''t'', p, <''u'',e'>:e
''t'', p, <''u'',e'>:e
|-
|-
|
|''शून्य''
'''''Zero'''''
|
|
''0'', p, <''t'', e'>:e
''0'', p, <''t'', e'>:e
Line 87: Line 85:
''t'', p, e'
''t'', p, e'
|-
|-
|
|''सक्स''
'''''Succ'''''
|
|
''n+1'', p, <''t'',e'>:e
''n+1'', p, <''t'',e'>:e
Line 94: Line 91:
n, p, e
n, p, e
|}
|}
संक्रमण ''ऐप'' किसी आवेदन के पैरामीटर को हटा देता है और इसे आगे के मूल्यांकन के लिए ढेर पर रख देता है। परिवर्तन ''एबीएस'' शब्द के λ को हटा देता है और ढेर के शीर्ष से क्लोजर को पॉप अप करता है और इसे पर्यावरण के शीर्ष पर रख देता है। यह समापन नए परिवेश में डी ब्रुइज़न सूचकांक ''0'' से मेल खाता है। संक्रमण ''शून्य'' पर्यावरण का पहला समापन लेता है। इस समापन की अवधि वर्तमान अवधि बन जाती है और इस समापन का वातावरण वर्तमान परिवेश बन जाता है। संक्रमण ''सक्स'' पर्यावरण सूची के पहले समापन को हटा देता है और सूचकांक के मूल्य को कम कर देता है।
संक्रमण ''ऐप'' किसी आवेदन के पैरामीटर को हटा देता है और इसे आगे के मूल्यांकन के लिए स्टैक पर रख देता है। परिवर्तन ''एबीएस'' पद के λ को हटा देता है और स्टैक के शीर्ष से क्लोजर को पॉप अप करता है और इसे पर्यावरण के शीर्ष पर रख देता है। यह समापन नए परिवेश में डी ब्रुइज़न सूचकांक ''0'' से मेल खाता है। संक्रमण ''शून्य'' पर्यावरण का पहला समापन लेता है। इस समापन की अवधि वर्तमान अवधि बन जाती है और इस समापन का वातावरण वर्तमान परिवेश बन जाता है। संक्रमण ''सक्स'' पर्यावरण सूची के पहले समापन को हटा देता है और सूचकांक के मूल्य को कम कर देता है।


=== दो उदाहरण ===
=== दो उदाहरण ===
आइए हम पद (λ 0 0) (λ 0) का मूल्यांकन करें जो पद (λ x. x x) (λ x. x) से संगत है। आइए स्थिति (λ 0 0) (λ 0), □, □ से शुरू करें।
हम (λ 0 0) (λ 0) पद का मूल्यांकन करें जो पद (λ x. x x) (λ x. x) के साथ होता है। नीचे दिए गए स्थिति से प्रारंभ करेंगे:
 
(''λ'' 0 0) (''λ'' 0), □, □.


{|class="wikitable center" style= "width:30%"
{|class="wikitable center" style= "width:30%"
Line 127: Line 126:
|-
|-
|}
|}
निष्कर्ष यह है कि पद (λ 0 0) (λ 0) का शीर्ष सामान्य रूप λ 0 है। यह चर के साथ अनुवाद करता है: पद का शीर्ष सामान्य रूप (λ x. x x) (λ x. x) है λ एक्स. एक्स।
निष्कर्ष यह है कि पद (λ 0 0) (λ 0) का शीर्ष सामान्य रूप λ 0 है। यह चर के साथ अनुवाद करता है: पद (λ x. x x) (λ x. x) का शीर्ष सामान्य रूप ''λ'' ''x''. ''x''. है।


आइए हम पद ((λ 0) (λ 0)) (λ 0) का मूल्यांकन करें जैसा कि नीचे दिखाया गया है:
अब हम पद ((λ 0) (λ 0)) (λ 0) का मूल्यांकन करें जैसा कि नीचे दिखाया गया है:


{|class="wikitable center" style="width:35%"
{|class="wikitable center" style="width:35%"
Line 152: Line 151:


== अंतर-व्युत्पत्तियाँ ==
== अंतर-व्युत्पत्तियाँ ==
वक्र मशीन, CEK मशीन की प्रकार, न केवल कार्यात्मक रूप से [[मेटा-सर्कुलर मूल्यांकनकर्ता]] के अनुरूप है,
मशीन वक्र, CEK मशीन की प्रकार, न केवल कार्यात्मक रूप से [[मेटा-सर्कुलर मूल्यांकनकर्ता]] के अनुरूप है,यह वाक्यविन्यास की दृष्टि से भी मेल खाता है <math>\lambda\widehat{\rho}</math> गणना - पियरे-लुई क्यूरियन का संस्करण <math>\lambda\widehat{\rho}</math> [[स्पष्ट प्रतिस्थापन]] की गणना जो कमी के तहत बंद होती है - सामान्य-क्रम कटौती रणनीति के साथ।
 
यह वाक्यविन्यास की दृष्टि से भी मेल खाता है <math>\lambda\widehat{\rho}</math> गणना - पियरे-लुई क्यूरियन का संस्करण <math>\lambda\widehat{\rho}</math> [[स्पष्ट प्रतिस्थापन]] की गणना जो कमी के तहत बंद होती है - सामान्य-क्रम कटौती रणनीति के साथ।


यदि <math>\lambda\widehat{\rho}</math> गणना में सामान्यीकृत सम्मलित है <math>\beta</math> कमी ( बरकरार, नेस्टेड <math>\beta</math> रेडेक्स <math>(\lambda x_1.\lambda x_2.e_0)\;e_1\;e_2</math> दो के अतिरिक्त चरण में अनुबंधित किया जाता है), तो वाक्यात्मक रूप से संबंधित मशीन जीन-लुई क्रिविन की मूल मशीन के साथ मेल खाती है।<ref name="Krivine 07">
यदि <math>\lambda\widehat{\rho}</math> गणना में सामान्यीकृत सम्मलित है <math>\beta</math> कमी ( बरकरार, नेस्टेड <math>\beta</math> रेडेक्स <math>(\lambda x_1.\lambda x_2.e_0)\;e_1\;e_2</math> दो के अतिरिक्त चरण में अनुबंधित किया जाता है), तो वाक्यात्मक रूप से संबंधित मशीन जीन-लुई क्रिविन की मूल मशीन के साथ मेल खाती है।<ref name="Krivine 07">
Line 168: Line 165:
|doi=10.1007/s10990-007-9018-9|s2cid=18158499
|doi=10.1007/s10990-007-9018-9|s2cid=18158499
}}
}}
</ref>
</ref><ref name="1biernacka danvy brics-07">
 
<ref name="1biernacka danvy brics-07">
{{cite journal
{{cite journal
|last1=Biernacka
|last1=Biernacka
Line 185: Line 180:
|pages=1–30
|pages=1–30
|doi=10.7146/brics.v13i3.21909}}
|doi=10.7146/brics.v13i3.21909}}
</ref>(इसके अतिरिक्त, यदि कटौती की रणनीति मूल्य के आधार पर दाएं से बाएं कॉल है और इसमें सामान्यीकृत सम्मलित है <math>\beta</math> कमी, तो वाक्यात्मक रूप से संगत मशीन [[जेवियर लेरॉय]] की ZINC अमूर्त मशीन है, जो [[OCaml]] का आधार है।
</ref>(इसके अतिरिक्त, यदि कटौती की रणनीति मूल्य के आधार पर दाएं से बाएं कॉल है और इसमें सामान्यीकृत सम्मलित है <math>\beta</math> कमी, तो वाक्यात्मक रूप से संगत मशीन [[जेवियर लेरॉय]] की ज़िन्क अमूर्त मशीन है, जो [[OCaml|ओसीमल]] का आधार में है।


== यह भी देखें ==
== यह भी देखें ==
Line 205: Line 200:


Content in this edit is translated from the existing French Wikipedia article at [[:fr:Machine de Krivine]]; see its history for attribution.
Content in this edit is translated from the existing French Wikipedia article at [[:fr:Machine de Krivine]]; see its history for attribution.


==ग्रन्थसूची==
==ग्रन्थसूची==
Line 217: Line 211:
*Frédéric Lang: ''Explaining the lazy Krivine machine using explicit substitution and addresses''. Higher-Order and Symbolic Computation 20(3): 257-270 (2007) [https://hal.inria.fr/inria-00198756 archive].
*Frédéric Lang: ''Explaining the lazy Krivine machine using explicit substitution and addresses''. Higher-Order and Symbolic Computation 20(3): 257-270 (2007) [https://hal.inria.fr/inria-00198756 archive].
*[[Olivier Danvy]] (Ed.): Editorial of special issue of ''Higher-Order and Symbolic Computation'' on the Krivine machine, vol. 20(3) (2007)
*[[Olivier Danvy]] (Ed.): Editorial of special issue of ''Higher-Order and Symbolic Computation'' on the Krivine machine, vol. 20(3) (2007)


==बाहरी संबंध==
==बाहरी संबंध==

Revision as of 10:32, 15 July 2023

सैद्धांतिक कंप्यूटर विज्ञान में, मशीन वक्र अमूर्त मशीन है (कभी-कभी इसे आभासी मशीन भी कहा जाता है)। अमूर्त मशीन के रूप में, यह ट्यूरिंग मशीन और एसईसीडी मशीन के साथ सुविधाएँ साझा करती है। क्रिवाइन मशीन ऐसी प्रतिष्ठानिक मशीन है जो रिकर्सिव फ़ंक्शन को कैसे कंप्यूट करती है को परिभाषित करने का प्रयास करती है। अधिक विशेष रूप से इसका उद्देश्य नाम से बुलाओ कमी का उपयोग करके लैम्ब्डा गणना के सामान्य रूप में कमी को सख्ती से परिभाषित करना है। इसकी औपचारिकता के कारण, यह विवरण में बताता है कि प्रकार की कमी कैसे काम करती है और कार्यात्मक प्रोग्रामिंगभाषाओं के परिचालन शब्दार्थ की सैद्धांतिक नींव निर्धारित करती है। दूसरी ओर, वक्र मशीन कॉल-बाय-नाम को लागू करती है इसमें β- कम करने योग्य अभिव्यक्ति को उसके पैरामीटर पर लागू करने से पहले उसे निर्धारित किया जाता है। अन्य शब्दों में, अभिव्यक्ति (λ x. t) u में यह पहले λ x को निर्धारित किया जाता है और फिर उसे u पर लागू किया जाता है। फ़ंक्शनल प्रोग्रामिंग में, यह यह मतलब होता है कि पैरामीटर पर लागू किए गए फ़ंक्शन को मूल्यांकित करने के लिए, इसे पहले फ़ंक्शन को मूल्यांकित किया जाता है।

क्रिवाइन मशीन को फ्रांसीसी तार्किक विद्वान जीन-लुई क्रिवाइन ने 1980 के दशक की शुरुआत में डिज़ाइन किया था।

नाम और सिर से बुलाएं सामान्य रूप में कमी

वक्र मशीन लैम्ब्डा गणना से संबंधित दो अवधारणाओं पर आधारित है, अर्थात् हेड रिडक्शन और नाम से कॉल पर आधारित है|

सिर सामान्य रूप में कमी

रेडेक्स[1] (बीटा-रेडेक्स भी कहा जाता है) लैम्बडा गणना का पद होता है जिसकी रूप में (λ x. t) u होता है। अगर पद की आकृति (λ x. t) u1 ... un होती है, तो उसे हेड रेडेक्स कहा जाता है। बीटा सामान्य रूप लैम्ब्डा गणना का पद है जो हेड रिडेक्स नहीं है।[lower-alpha 1] हेड रीडक्शन पद के (गैर खाली) क्रमबद्ध श्रिंखला होती है जो पद के हेड रेडेक्स को श्रिंकलेट करती है। पद t की हेड रीडक्शन (जिसे हेड नॉर्मल फ़ॉर्म में नहीं होने का समझा जाता है) हेड रीडक्शन है जो पद t से शुरू होती है और हेड नॉर्मल फ़ॉर्म पर समाप्त होती है। अभिकल्पिक दृष्टिकोण से, हेड रीडक्शन प्रोग्राम की प्रक्रिया है जब वह पुनरावृत्तिशील उप-प्रोग्राम का मूल्यांकन करता है। इस तरह की श्रिंकलन को कैसे कार्यान्वित किया जा सकता है, इसे समझना महत्वपूर्ण है। क्रिवाइन मशीन का उद्देश्य हेड नॉर्मल फ़ॉर्म में पद को श्रिंकलने की प्रक्रिया प्रस्तावित करना है और इस प्रक्रिया को समय-समय पर वर्णित करना है। जैसे एलन ट्यूरिंग ने अवकाशी मशीन का उपयोग करके सामान्यता की नीति को समय-समय पर वर्णित किया, क्रिवाइन ने अवकाशी मशीन का उपयोग करके हेड नॉर्मल फ़ॉर्म श्रिंकलन की नीति को समय-समय पर वर्णित किया। जाता है।

उदाहरण

पद ((λ 0) (λ 0)) (λ 0) (जो स्पष्ट प्रत्यक्ष चर का उपयोग करता है, इसके लिए पद (λx.x) (λy.y) (λz.z) होता है) हेड नॉर्मल फ़ॉर्म में नहीं है क्योंकि (λ 0) (λ 0) को श्रिंकलित करके (λ 0) का उत्पादन होता है, जिससे हेड रेडेक्स (λ 0) (λ 0) होता है जो (λ 0) में श्रिंकलित होता है और जो इसलिए ((λ 0) (λ 0)) (λ 0) का हेड नॉर्मल फ़ॉर्म होता है। अन्य शब्दों में, हेड नॉर्मल फ़ॉर्म का श्रिंकलन है:

((λ 0) (λ 0)) (λ 0) ➝ (λ 0) (λ 0) ➝ λ 0,

जो इसके लिए है:

(λx.x) (λy.y) (λz.z) ➝ (λy.y) (λz.z) ➝ λz.z.

आगे चलकर हम देखेंगे कि वक्र मशीन कैसे अवधि ((λ 0) (λ 0)) (λ 0) को संक्षेपित करती है।

नाम से पुकारें

अवधि u v की हेड रेडक्शन को कार्यान्वित करने के लिए, जो आवेदन है, किन्तु जो रेडेक्स नहीं है, हमें पहले अवधि u को संक्षेपित करके अव्यवहार्यता दिखाने के लिए u को संक्षेपित करना होगा, और इस प्रकार v के साथ रेडेक्स बनाना होगा। जब रेडेक्स प्रकट होता है, तो हम उसे संक्षेपित करते हैं। आवेदन के शरीर को सदैव पहले संक्षेपित करना, कॉल बाय नाम कहलाता है। वक्र मशीन कॉल बाय नाम को कार्यान्वित करती है।

विवरण

यहां दी गई वक्र मशीन की प्रस्तुति लैम्ब्डा शब्दों के नोटेशन पर आधारित है जो डी ब्रूजन सूचकांकों का उपयोग करती है और मानती है कि जिन शर्तों से यह सिर के सामान्य रूपों की गणना करती है वे लैम्ब्डा गणना परिभाषा मुक्त और बाध्य चर हैं।[2] यह वर्तमान स्थिति को तब तक संशोधित करता है जब तक कि वह ऐसा नहीं कर सकता, जिस स्थिति में इसे सामान्य रूप प्राप्त होता है। यह शीर्ष सामान्य रूप गणना के परिणाम को दर्शाता है या त्रुटि उत्पन्न करता है, जिसका अर्थ है कि जिस पद से इसकी प्रारंभिक हुई है वह सही नहीं है। चूँकि, यह संक्रमणों के अनंत अनुक्रम में प्रवेश कर सकता है, जिसका अर्थ है कि यह जिस पद को कम करने का प्रयास करता है उसका कोई सामान्य रूप नहीं है और यह गैर-समाप्ति गणना से मेल खाता है।

प्रमाणित हो चुका है कि क्रिवाइन मशीन लैम्बडा-कैलकुलस में कॉल बाय नेम हेड नॉर्मल फ़ॉर्म श्रिंकलन का सही अनुपालन करती है। इसके अलावा, क्रिवाइन मशीन निर्णायक है, क्योंकि प्रत्येक स्थिति के पैटर्न का अधिकांश एक मशीन ट्रांजिशन के साथ संबंधित होता है।

स्थिति

स्थिति के तीन होते हैं[2]:

  1. शब्द,
  2. स्टैक
  3. वातावरण

शब्द डी ब्रुयन सूचकांकों के साथ लैम्बडा-शब्द होता है। स्टैक और वातावरण एक ही पुनरावृत्तिशील डेटा संरचना में होते हैं। अधिक सटीक रूप से, पर्यावरण और स्टैक को <अवधि, पर्यावरण> के जोड़ों की सूची के रूप में प्रस्तुत किया जाता है, जिन्हें क्लोज़र कहा जाता है। निम्नलिखित में, किसी तत्व a की सूची ℓ ( स्टैक या पर्यावरण) के प्रमुख के रूप में प्रविष्टि a:ℓ लिखी जाती है, चूँकि खाली सूची □ लिखी जाती है। स्टैक वह स्थान है जहां मशीन क्लोजर को संग्रहीत करती है जिसका मूल्यांकन किया जाना चाहिए, चूँकि पर्यावरण मूल्यांकन के समय निश्चित समय पर सूचकांक और क्लोजर के बीच संबंध है। पर्यावरण का पहला तत्व अनुक्रमणिका 0 से जुड़ा क्लोजर है, दूसरा तत्व अनुक्रमणिका 1 आदि से जुड़े क्लोजर से मेल खाता है। यदि मशीन को किसी अनुक्रमणिका का मूल्यांकन करना है, तो वह वहां जोड़ी लाती है। <अवधि, पर्यावरण> वह समापन जो मूल्यांकन किए जाने वाले पद को उत्पन्न करता है और वह वातावरण जिसमें इस पद का मूल्यांकन किया जाना चाहिए।[lower-alpha 2] यह सहज स्पष्टीकरण मशीन के संचालन नियमों को समझने की अनुमति देता है। यदि कोई पद के लिए t, स्टैक के लिए p लिखता है,[lower-alpha 3] और पर्यावरण के लिए e, इन तीन संस्थाओं से जुड़े स्थितिों को t, p, e लिखा जाएगा। नियम बताते हैं कि कैसे मशीन स्थितिों के बीच नमूना की पहचान करने के बाद स्थिति को दूसरे स्थिति में बदल देती है।

प्रारंभिक स्थिति एक शब्द t को मूल्यांकित करने का उद्देश्य रखती है, यह t,□,□, की स्थिति है, जिसमें शब्द t है और स्टैक और वातावरण खाली हैं। अंतिम स्थिति (त्रुटि की अनुपस्थिति में) एक लैम्बडाλ t, □, e की आकृति होती है, अन्य शब्दों में, परिणामी शब्द एक विचारशक्ति के साथ होती है जिसका वातावरण होता है और एक खाली स्टैक होती है।

परिवर्तन

क्रिविन मशीन[2] में चार स्थानांतरण होते हैं: ऐप, एब्स, शून्य, सक्स

क्रिवाइन मशीन के स्थानांतरण
नाम पहले बाद में
ऐप

t u, p, e

t, <u,e>:p, e

एब्स

λ t, <u,e'>:p, e

t, p, <u,e'>:e

शून्य

0, p, <t, e'>:e

t, p, e'

सक्स

n+1, p, <t,e'>:e

n, p, e

संक्रमण ऐप किसी आवेदन के पैरामीटर को हटा देता है और इसे आगे के मूल्यांकन के लिए स्टैक पर रख देता है। परिवर्तन एबीएस पद के λ को हटा देता है और स्टैक के शीर्ष से क्लोजर को पॉप अप करता है और इसे पर्यावरण के शीर्ष पर रख देता है। यह समापन नए परिवेश में डी ब्रुइज़न सूचकांक 0 से मेल खाता है। संक्रमण शून्य पर्यावरण का पहला समापन लेता है। इस समापन की अवधि वर्तमान अवधि बन जाती है और इस समापन का वातावरण वर्तमान परिवेश बन जाता है। संक्रमण सक्स पर्यावरण सूची के पहले समापन को हटा देता है और सूचकांक के मूल्य को कम कर देता है।

दो उदाहरण

हम (λ 0 0) (λ 0) पद का मूल्यांकन करें जो पद (λ x. x x) (λ x. x) के साथ होता है। नीचे दिए गए स्थिति से प्रारंभ करेंगे:

(λ 0 0) (λ 0), □, □.

पद का मूल्यांकन (λ 0 0) (λ 0)

(λ 0 0) (λ 0), □, □

λ 0 0, [<λ 0, □>], □

0 0, □, [<λ 0, □>]

0, [<0, <λ 0, □>>], [<λ 0, □>]

λ 0, [<0, <λ 0, □>>], □

0, □, [<0, <λ 0, □>>]

0, □, [<λ 0, □>]

λ 0, □, □

निष्कर्ष यह है कि पद (λ 0 0) (λ 0) का शीर्ष सामान्य रूप λ 0 है। यह चर के साथ अनुवाद करता है: पद (λ x. x x) (λ x. x) का शीर्ष सामान्य रूप λ x. x. है।

अब हम पद ((λ 0) (λ 0)) (λ 0) का मूल्यांकन करें जैसा कि नीचे दिखाया गया है:

((λ 0) (λ 0)) (λ 0) का मूल्यांकन
((λ 0) (λ 0)) (λ 0), □, □
(λ 0) (λ 0), [<(λ 0), □>], □
(λ 0), [<(λ 0), □>,<(λ 0), □>], □
0, [<(λ 0), □>], [<(λ 0), □>]
λ 0, [<(λ 0), □>], □
0, □, [<(λ 0), □>]
(λ 0), □, □

यह उपरोक्त तथ्य की पुष्टि करता है कि पद ((λ 0) (λ 0)) (λ 0) का सामान्य रूप (λ 0) है।

अंतर-व्युत्पत्तियाँ

मशीन वक्र, CEK मशीन की प्रकार, न केवल कार्यात्मक रूप से मेटा-सर्कुलर मूल्यांकनकर्ता के अनुरूप है,यह वाक्यविन्यास की दृष्टि से भी मेल खाता है गणना - पियरे-लुई क्यूरियन का संस्करण स्पष्ट प्रतिस्थापन की गणना जो कमी के तहत बंद होती है - सामान्य-क्रम कटौती रणनीति के साथ।

यदि गणना में सामान्यीकृत सम्मलित है कमी ( बरकरार, नेस्टेड रेडेक्स दो के अतिरिक्त चरण में अनुबंधित किया जाता है), तो वाक्यात्मक रूप से संबंधित मशीन जीन-लुई क्रिविन की मूल मशीन के साथ मेल खाती है।[3][4](इसके अतिरिक्त, यदि कटौती की रणनीति मूल्य के आधार पर दाएं से बाएं कॉल है और इसमें सामान्यीकृत सम्मलित है कमी, तो वाक्यात्मक रूप से संगत मशीन जेवियर लेरॉय की ज़िन्क अमूर्त मशीन है, जो ओसीमल का आधार में है।

यह भी देखें

यह भी देखें

  • स्पष्ट प्रतिस्थापन
  • परिचालन शब्दार्थ

टिप्पणियाँ

  1. If one only deals with closed terms, these terms take the form λ x. t.
  2. Using the concept of closure, one may replace the triple <term,stack, environment>, which defines the state, by a couple <closure,stack>, but this change is cosmetic.
  3. p is for pile, the French word for stack, which we do not want to mix up with s, for state.

संदर्भ

  1. Barendregt, Hendrik Pieter (1984), The Lambda Calculus: Its Syntax and Semantics, Studies in Logic and the Foundations of Mathematics, vol. 103 (Revised ed.), North Holland, Amsterdam, ISBN 0-444-87508-5, archived from the original on 2004-08-23 Corrections.
  2. 2.0 2.1 2.2 Curien, Pierre-Louis (1993). Categorical Combinators, Sequential Algorithms and Functional (2nd ed.). Birkhaüser.
  3. Krivine, Jean-Louis (2007). "A call-by-name lambda-calculus machine". Higher-Order and Symbolic Computation. 20 (3): 199–207. doi:10.1007/s10990-007-9018-9. S2CID 18158499.
  4. Biernacka, Małgorzata; Danvy, Olivier (2007). Article #6. "A Concrete Framework for Environment Machines". ACM Transactions on Computational Logic. 9 (1): 1–30. doi:10.7146/brics.v13i3.21909.

Content in this edit is translated from the existing French Wikipedia article at fr:Machine de Krivine; see its history for attribution.

ग्रन्थसूची

  • Jean-Louis Krivine: A call-by-name lambda-calculus machine. Higher-Order and Symbolic Computation 20(3): 199-207 (2007) archive.
  • Curien, Pierre-Louis (1993). Categorical Combinators, Sequential Algorithms and Functional (2nd ed.). Birkhaüser.
  • Frédéric Lang: Explaining the lazy Krivine machine using explicit substitution and addresses. Higher-Order and Symbolic Computation 20(3): 257-270 (2007) archive.
  • Olivier Danvy (Ed.): Editorial of special issue of Higher-Order and Symbolic Computation on the Krivine machine, vol. 20(3) (2007)

बाहरी संबंध