बाइनरी कॉम्बिनेटरी लॉजिक
बाइनरी कॉम्बिनेटरी लॉजिक (बीसीएल) कंप्यूटर की ऐसी प्रोग्रामिंग भाषा है जो केवल 0 और 1 प्रतीकों का उपयोग करके कॉम्बिनेटरी लॉजिक का पूरा फॉर्मूलेशन बनाने के लिए बाइनरी शब्द 0 और 1 का उपयोग करती है।[1] एस और के कॉम्बिनेटर का उपयोग करके जटिल बूलियन बीजगणित फ़ंक्शन बनाए जा सकते हैं। इस प्रकार बीसीएल के पास प्रोग्राम-आकार की जटिलता को कोलमोगोरोव जटिलता के सिद्धांत में अनुप्रयोग किया जाता हैं।[1][2]
परिभाषा
S-K बेसिस
कॉम्बिनेटर लॉजिक के K और S कॉम्बिनेटर का उपयोग करते हुए, लाॅजिक से जुड़े कार्यों को कॉम्बिनेटर के कार्यों के रूप में दर्शाया जा सकता है:
बूलियन बीजगणित | S-K बेसिस | |
---|---|---|
True(1) | K(KK) | |
False(0) | K(K(SK)) | |
AND | SSK | |
NOT | SS(S(S(S(SK))S))(KK) | |
OR | S(SS)S(SK) | |
NAND | S(S(K(S(SS(K(KK)))))))S | |
NOR | S(S(S(SS(K(K(KK)))))(KS)) | |
XOR | S(S(S(SS)(S(S(SK)))S))K |
प्रारूप
बैकस नौर फॉर्म:
<term> ::= 00 | 01 | 1 <term> <term>
शब्दार्थ
बीसीएल के सांकेतिक शब्दार्थ को इस प्रकार निर्दिष्ट किया जा सकता है:
[ 00 ] == K
*[ 01 ] == S
[ 1 <term1> <term2> ] == ( [<term1>] [<term2>] )
कहाँ[...]
के अर्थ को संक्षिप्त करता है, इस प्रकार यहाँ परK
औरS
एसकेआई कॉम्बिनेटर कैलकुलस या केएस-बेस कॉम्बिनेटर हैं, और( )
संयोजनात्मक तर्क का अनुप्रयोग संचालन करता है। इसमें उपसर्ग1
बाएं कोष्ठक से मेल खाता है, दायां कोष्ठक स्पष्टीकरण के लिए अनावश्यक है।
इस प्रकार बीसीएल के चार समकक्ष फॉर्मूलेशन हैं, जो ट्रिपलेट के, एस, बाएं कोष्ठक को एन्कोड करने के तरीके पर निर्भर करते हैं। ये (00, 01, 1)
(01, 00, 1)
, (10, 11, 0)
, और (11, 10, 0)
जैसा कि वर्तमान संस्करण में है,
ईटीए-कमी जो ट्यूरिंग-पूर्ण के लिए आवश्यक नहीं है, इसके अतिरिक्त बीसीएल के परिचालन शब्दार्थ को किसी दिए गए शब्द के उप-शब्दों के लिए निम्नलिखित पुनर्लेखन नियमों द्वारा बहुत ही संक्षिप्त रूप से निर्दिष्ट किया जा सकता है, जो बाईं ओर से पदच्छेदित हैं :
1100xy → x
11101xyz → 11xz1yz
जहाँ x
, y
, और z
उपशब्द हैं, यहाँ पर ध्यान दें, उदाहरण के लिए पार्सिंग बाईं ओर से है, जिसके लिए 10000
11010000
का उपपद नहीं है।
बीसीएल का उपयोग ट्यूरिंग मशीन और सेलुलर ऑटोमेटन जैसे एल्गोरिदम को दोहराने के लिए किया जा सकता है,[3] इस प्रकार बीसीएल ट्यूरिंग पूर्णता रहती है।
यह भी देखें
- आयोटा और जोट
संदर्भ
- ↑ 1.0 1.1 Tromp, John (2007), "Binary lambda calculus and combinatory logic", Randomness and complexity (PDF), World Sci. Publ., Hackensack, NJ, pp. 237–260, CiteSeerX 10.1.1.695.3142, doi:10.1142/9789812770837_0014, ISBN 978-981-277-082-0, MR 2427553.
- ↑ Devine, Sean (2009), "The insights of algorithmic entropy", Entropy, 11 (1): 85–110, doi:10.3390/e11010085, MR 2534819
- ↑ 3.0 3.1 3.2 Wolfram, Stephen (2021-12-06). "Combinators: A Centennial View". writings.stephenwolfram.com (in English). Archived from the original on 2020-12-06. Retrieved 2021-02-17.
अग्रिम पठन
- Tromp, John (October 2007). "Binary Lambda Calculus and Combinatory Logic". Randomness and Complexity, from Leibniz to Chaitin: 237–260. doi:10.1142/9789812770837_0014. ISBN 978-981-277-082-0.
बाहरी संबंध
- John's Lambda Calculus and Combinatory Logic Playground
- A minimal implementation in C
- Brauner, Paul. "Lambda Diagrams YouTube Playlist". YouTube. Archived from the original on 2021-12-21.