क्या लैम्ब्डा कैलकुलस और कॉम्बिनेरी लॉजिक समान हैं?


26

मैं वर्तमान में Hindley और Seldin द्वारा " लैम्ब्डा-कैलकुलस एंड कॉम्बिनेटर " पढ़ रहा हूं। मैं एक विशेषज्ञ नहीं हूं, लेकिन हमेशा कार्यात्मक प्रोग्रामिंग (लिस्प और एसआईसीपी के साथ शुरू, और अब आर और हास्केल के साथ) के साथ शामिल होने के कारण लैंबडा कैलकुलस में रुचि ली है।

" बाइनरी लैम्बडा कैलकुलस एंड कॉम्बिनेरी लॉजिक" में , जॉन ट्रम्प कहते हैं:

सीएल को लैम्ब्डा कैलकुलस के एक उपसमुच्चय के रूप में देखा जा सकता है ... सिद्धांत काफी हद तक समान हैं, जो कि विलुप्त होने के नियम की उपस्थिति के समतुल्य बन रहे हैं।

लैम्ब्डा कैलकुलस के बजाय कंबाइनेटरी लॉजिक का उपयोग किन परिस्थितियों में किया जाएगा ?

किसी भी संदर्भ की सराहना की जाएगी।


HP Barendregt द्वारा "लैम्ब्डा कैलकुलस: इसके सिंटैक्स और शब्दार्थ" पर एक नज़र डालें।
केवह

जवाबों:


15

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

यह कार्यान्वयन में भी उपयोगी हो सकता है, क्योंकि चर का प्रबंधन एक सिरदर्द हो सकता है। Cf., उदाहरण के लिए, ह्यूजेस, 1982, सुपर-कॉम्बिनेटर: एप्लाइड भाषाओं के लिए एक नई कार्यान्वयन विधि


3
संयुक्त तर्क को कार्यान्वयन में अधिक उपयोगी नहीं माना जाता है, और इसका उपयोग कभी नहीं किया गया क्योंकि "चर का प्रबंधन एक सिरदर्द हो सकता है"। आलसी भाषाओं के लिए ग्राफ में कमी को लागू करने के लिए संयोजकों और वेरिएंट का उपयोग किया गया था, लेकिन आजकल हास्केल (सबसे प्रमुख आलसी भाषा) ग्राफ़ में कमी को लागू करने के लिए बहुत अधिक उचित तकनीकों का उपयोग करता है।
Blaisorblade

उदाहरण के लिए देखें। एस। पायटन जोन्स, 1992, "स्टॉक हार्डवेयर पर आलसी कार्यात्मक भाषाओं को लागू करना: स्पिनलेस टैगलेस जी-मशीन" - research.microsoft.com/copyright/accept.asp?path=/users/simonpj/…
Blaisorblade

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

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

मुझे उच्च-स्तरीय लॉजिक प्रोग्रामिंग का पता नहीं था - मुझे यह पेपर इस पर मिला: springerlink.com/content/t68777w270713p5n । दुर्भाग्य से, यह संभावना नहीं है कि मेरे पास इसे पढ़ने का समय होगा।
१०:१० बजे ब्लिसोरब्लेड

4

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

कॉम्बिनेशन लॉजिक पर मेरा पसंदीदा ट्यूटोरियल कैम्ब्रिज यूनिवर्सिटी के इन लेक्चर नोट्स में है।

हालांकि, उन्हें तथाकथित आलसी (या प्रयोज्य) भाषाओं के कार्यान्वयन की व्याख्या करने के लिए पेश किया जाता है; जैसा कि मेरी पिछली टिप्पणी में बताया गया है, ऐसी तकनीकें अब पुरानी हो चुकी हैं।


चूंकि जुझारू भाषाओं को अब आलसी / लागू करने वाली भाषाओं में लागू करने के लिए उपयोग नहीं किया जाता है, अब कला तकनीकों की स्थिति क्या है? और क्या इन तकनीकों को वर्गीकृत करने के लिए कोई नाम / श्रेणी है?
CMCDragonkai

@CMCDragonkai चर्चा के लिए cstheory.stackexchange.com/a/306/989 पर टिप्पणियां देखें । संक्षिप्त व्यावहारिक उत्तर "जीएचसी क्या करता है पर कागजात देखें": विभिन्न तकनीकों की एक किस्म है (एसटीजी मशीन और अनुकूलन दोनों जैसे कि कठोरता विश्लेषण सहित) जो एक साथ मिलकर आलसी कार्यक्रमों को तेज बनाते हैं।
ब्लिसोरब्लेड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.