प्रश्न का सीधा उत्तर: हाँ, -ccursive फ़ंक्शन (व्हॉट्सएप) पर आधारित गूढ़ और अत्यधिक अव्यावहारिक PLs हैं , लेकिन कोई व्यावहारिक प्रोग्रामिंग भाषा μ -ccursive कार्यों पर मान्य कारणों के कारण आधारित नहीं है।μμ
सामान्य पुनरावर्ती (यानी, ) कार्य लंबोदर कैल्सी की तुलना में काफी कम अभिव्यंजक हैं । इस प्रकार, वे प्रोग्रामिंग भाषाओं के लिए एक खराब नींव बनाते हैं। आप यह भी सही नहीं हैं कि TM अनिवार्य PLs का आधार है: वास्तव में, अच्छी अत्यावश्यक प्रोग्रामिंग भाषाएं λ -calculus की तुलना में बहुत करीब हैं, क्योंकि वे ट्यूरिंग मशीन हैं।μλ
संगणनात्मकता के संदर्भ में, कार्य, ट्यूरिंग मशीन, और अनकैप्ड λ -calculus सभी समान हैं। हालांकि, अप्रयुक्त एलसी में अच्छे गुण हैं जो अन्य दो में से कोई भी नहीं है। यह बहुत सरल है (केवल 3 वाक्यात्मक रूप और 2 कम्प्यूटेशनल नियम), अत्यधिक रचनात्मक है, और प्रोग्रामिंग निर्माणों को अपेक्षाकृत आसानी से व्यक्त कर सकता है। इसके अलावा, एक सरल प्रकार प्रणाली से लैस (जैसे, प्रणाली एफ ω के साथ बढ़ाया च मैं x ), λ -calculus अत्यंत अर्थपूर्ण हो सकता है कि यह सही ढंग से और संघटनात्मक आसानी से कई जटिल प्रोग्रामिंग निर्माणों व्यक्त कर सकते हैं,। आप λ का विस्तार भी कर सकते हैंμλFωfixλλ-कैंक्लस आसानी से ऐसे निर्माणों को शामिल करना है जो लंबोदा नहीं हैं। ऊपर वर्णित अन्य कम्प्यूटेशनल मॉडल में से कोई भी आपको उन अच्छे गुणों को नहीं देता है।
ट्यूरिंग मशीन न तो संरचनागत है और न ही सार्वभौमिक (आपको प्रत्येक समस्या के लिए एक टीएम की आवश्यकता है)। "फ़ंक्शन", "चर" या "रचना" की कोई अवधारणा नहीं है। यह भी बिल्कुल सही नहीं है कि TM अनिवार्य PLs का आधार हैं - FWIW, अनिवार्य PLs, ट्यूरिंग मशीनों की तुलना में नियंत्रण ऑपरेटरों के साथ लैम्ब्डा कैल्सी के बहुत करीब हैं। विस्तृत विवरण के लिए पीटर जे। लैंडिन का "ALGOL 60 और चर्च के लैम्ब्डा-संकेतन के बीच एक पत्राचार" देखें । यदि आपने ब्रेनफ ** k (जो वास्तव में एक सरल ट्यूरिंग मशीन लागू करता है) में प्रोग्राम किया है, तो आपको पता चल जाएगा कि ट्यूरिंग मशीन प्रोग्रामिंग के लिए एक अच्छा विचार नहीं है।
μμμN
λλμλλ
वास्तव में, वहाँ कई, कई और अधिक ट्यूरिंग सिस्टम वहाँ से बाहर हैं, लेकिन वे किसी भी बकाया संपत्ति का अभाव है। कॉनवे के गेम ऑफ लाइफ, लाटेक्स मैक्रोज़, और यहां तक कि (कुछ दावा) डीएनए सभी ट्यूरिंग पूर्ण हैं, लेकिन कॉनवे के साथ कोई भी कार्यक्रम (यानी गंभीर प्रोग्रामिंग नहीं करता है) या लाटेक्स मैक्रोज़ का उपयोग कर कम्प्यूटेशनल जटिलता का अध्ययन करता है। उनमें बस अच्छे गुणों की कमी होती है। जब प्रोग्रामिंग की बात आती है, तो प्रति से अधिक ट्यूरिंग लगभग व्यर्थ है।
इसके अलावा, कई गैर-ट्यूरिंग पूर्ण कम्प्यूटेशनल सिस्टम प्रोग्रामिंग के लिए बहुत उपयोगी होते हैं। नियमित अभिव्यक्ति और yacc ट्यूरिंग पूर्ण नहीं हैं, लेकिन वे समस्याओं के एक निश्चित वर्ग को हल करने में बेहद शक्तिशाली हैं। कोक भी ट्यूरिंग पूर्ण नहीं है, लेकिन यह अविश्वसनीय रूप से शक्तिशाली है (यह वास्तव में अपने ट्यूरिंग पूर्ण चचेरे भाई, ओकेम्ल की तुलना में अधिक अभिव्यंजक माना जाता है )। जब प्रोग्रामिंग की बात आती है, तो ट्यूरिंग संपूर्णता कुंजी नहीं है, क्योंकि बहुत से (करीब) बेकार सिस्टम निर्बाध रूप से ट्यूरिंग पूर्ण हैं। आप यह दावा नहीं करने जा रहे हैं कि ब्रेनफ ** k या व्हॉट्सएप Coq की तुलना में अधिक शक्तिशाली प्रोग्रामिंग भाषाएं हैं, क्या आप हैं? एक अभिव्यंजक नींव शक्तिशाली प्रोग्रामिंग भाषाओं की कुंजी है, और यही कारण है कि आधुनिक प्रोग्रामिंग भाषाएं लगभग हमेशा पर आधारित होती हैंλ-calculus।