लैम्बडा कैलकुलस कुछ कॉम्बिनेटरों का प्रतिनिधित्व क्यों नहीं कर सकता है?


18

इस पत्र से पता चलता है कि कॉम्बिनेटर (प्रतीकात्मक अभिकलन का प्रतिनिधित्व करते हैं) जिन्हें लैम्बडा कैलकुलस (यदि मैं चीजों को सही ढंग से समझता हूं) का प्रतिनिधित्व नहीं किया जा सकता है:

जवाबों:


20

ऐसी कई चीजें हैं जो व्यवहार में करना चाहते हैं और यह सीधे लैंबडा कैलकुलस में व्यक्त नहीं किया जा सकता है।

एसएफ पथरी एक उदाहरण है। इसकी अभिव्यंजक शक्ति समाचार नहीं है; कागज का दिलचस्प हिस्सा (स्लाइड में नहीं दिखाया गया है) इसके पीछे श्रेणी सिद्धांत है। एसएफ पथरी एक लिस्प कार्यान्वयन के अनुरूप है जहां आप कार्यों को उनके तर्क के प्रतिनिधित्व का निरीक्षण करने की अनुमति देते हैं - इसलिए आप (print (lambda (x) (+ x 2)))⟹ जैसी चीजें लिख सकते हैं "(lambda (x) (+ x 2))"

एक अन्य महत्वपूर्ण उदाहरण प्लॉटकिन के समानांतर या है । सहज रूप से बोलते हुए, एक सामान्य परिणाम है जो बताता है कि लैम्ब्डा कैलकुलस अनुक्रमिक है: एक फ़ंक्शन जो दो तर्क लेता है उसे पहले मूल्यांकन करने के लिए एक को चुनना होगा। लैंबडा शब्द लिखना असंभव है orजैसे कि ( or⊥ ⟹) ⊥ , (( orwrite ⊤) ⊥ l और or⟹ l l where (जहां ⊥ एक गैर-समाप्ति शब्द है और ⊤ एक टर्म शब्द है)। इसे "समानांतर या" के रूप में जाना जाता है क्योंकि एक समानांतर कार्यान्वयन प्रत्येक कमी का एक चरण बना सकता है और जब भी कोई तर्क समाप्त हो जाता है तो उसे रोक सकता है।

फिर भी एक और चीज जो आप लैम्ब्डा कैलकुलस में नहीं कर सकते हैं वह है इनपुट / आउटपुट। आपको इसके लिए अतिरिक्त आदिम जोड़ना होगा।

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


11

आपके प्रश्न का उत्तर इस बात पर निर्भर करता है कि आप "अभिकलन" और "अभ्यावेदन" कैसे परिभाषित करते हैं। LTU पर धागा कि sclv उल्लेख किया , दूसरे हाथ पर, विभिन्न पदों की गलत संरेखित परिभाषाओं के लिए एक दूसरे की वजह से अतीत में बात कर लोगों की ज्यादातर होते हैं।

भेद निश्चित रूप से कम्प्यूटेशनल शक्ति में से एक नहीं है - विचाराधीन हर प्रणाली ट्यूरिंग-समतुल्य है। इस मुद्दे पर कि ट्यूरिंग-समतुल्यता वास्तव में किसी अभिव्यक्ति की संरचना या शब्दार्थ के बारे में कुछ नहीं कहती है। उस मामले के लिए, गणना के अत्यंत न्यूनतम मॉडल में जिन्हें जटिल एन्कोडिंग या गैर-तुच्छ प्रारंभिक अवस्थाओं की आवश्यकता होती है, यह भी स्पष्ट नहीं हो सकता है कि क्या कोई प्रणाली सार्वभौमिक संगणना के लिए सक्षम है, या क्या किसी की प्रणाली की व्याख्या के लिए सार्वभौमिकता का भ्रम पैदा किया जा रहा है । उदाहरण के लिए, 2-स्टेट, 3-सिंबल ट्यूरिंग मशीन, विशेष रूप से वॉन प्रैट द्वारा उठाए गए चिंताओं के बारे में इस मेलिंग सूची की चर्चा देखें ।

किसी भी दर पर, अंतर कुछ इस तरह है:

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

ट्यूरिंग-समतुल्यता केवल यह बताती है कि किसी भी कम्प्यूटेशनल फ़ंक्शन के लिए एक सिस्टम तीसरी कसौटी पर खरा उतरता है, जबकि यह अक्सर सबसे पहली कसौटी है जिसकी हम परवाह करते हैं, या तो तर्क की एक औपचारिक प्रणाली या एक प्रोग्रामिंग भाषा (जो कुछ भी वास्तव में भिन्न होती है)।

यह एक बहुत ही अनौपचारिक विवरण है, लेकिन आवश्यक विचार को अधिक सटीक रूप से देखा जा सकता है। उपर्युक्त LtU धागे में समान लाइनों के साथ मौजूदा काम के लिए कुछ संदर्भ मिल सकते हैं।


Schönfinkel के जुझारू तर्क और चर्च के λ-पथरी दोनों को शुरू में तार्किक तर्क के आसुत अमूर्त के रूप में तैयार किया गया था, और इस तरह, उनकी संरचना तार्किक तर्क और इसके विपरीत बहुत करीने से मैप करती है। उन्होंने यह भी की एक धारणा ले extensionality , के रूप में इस तरह के ईटा-कमी शासन द्वारा वर्णित: λx. f x, जहां xमें नहीं होती f, बस के बराबर है fअकेले।

व्यवहार में, बाह्यता की बहुत सख्त धारणा बहुत सीमित हो सकती है, जबकि अनियंत्रित अंतरंगता उप-अभिव्यक्तियों के बारे में स्थानीय तर्क को कठिन या असंभव बना देती है।

एसएफ-कैलकुलस एक संशोधित कॉम्बीनेटर कैलकुलस है जो एक आदिम ऑपरेशन के रूप में, गहन विश्लेषण का एक सीमित रूप प्रदान करता है: आंशिक रूप से लागू अभिव्यक्तियों को फिर से बनाने की क्षमता है, लेकिन आदिम मूल्यों या गैर-सामान्यीकृत अभिव्यक्तियों की नहीं। ऐसा एमएल-स्टाइल प्रोग्रामिंग लैंग्वेज या मैक्रोज़ में पाए जाने वाले पैटर्न मिलान जैसे विचारों पर अच्छी तरह से नक़्शे में होता है, लेकिन प्रभावी रूप से इन शब्दों के मूल्यांकन के लिए एक दुभाषिया को लागू किए बिना SK- या λ-पथरी में वर्णित नहीं किया जा सकता है।

इसलिए, संक्षेप में: SF-पथरी को सीधे λ-पथरी में इस अर्थ में नहीं दर्शाया जा सकता है कि सबसे अच्छा प्रतिनिधित्व संभव है जिसमें एक SF-पथरी दुभाषिया को लागू करना शामिल है, और इसका कारण एक मौलिक शब्दार्थ अंतर है: भावों को आंतरिक संरचना, या वे अपने बाहरी व्यवहार से पूरी तरह परिभाषित हैं?


आपका क्या मतलब है कि ट्यूरिंग मशीन पर कम्प्यूटेशन का प्रतिनिधित्व कैसे किया जा सकता है, इस पर अलग-अलग विचार हैं।
ह्वाके

5

बैरी जे के एसएफ कैलकुलस उन शब्दों की संरचना पर गौर करने में सक्षम है जो इसे लागू किया गया है, जो गैर-कार्यात्मक है। लैम्ब्डा कैलकुलस और पारंपरिक कॉम्बिनेटर लॉजिक विशुद्ध रूप से कार्यात्मक हैं, और इसलिए ऐसा नहीं कर सकते।

लैम्ब्डा-कैलकुलस के कई एक्सटेंशन हैं जो पवित्रता का उल्लंघन करने वाली चीजें करते हैं, जिनमें से अधिकांश को कुछ हद तक फिर से लिखने की रणनीति तय करने की आवश्यकता होती है, जैसे कि राज्य को जोड़ना, नियंत्रण (जैसे, निरंतरता के माध्यम से), या तर्क चर।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.