क्या आज मुख्यधारा के सामान्य-उद्देश्य वाले गैर-ट्यूरिंग पूर्ण भाषाएं उपलब्ध हैं?


12

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

क्या कोई मुख्यधारा की गैर-ट्यूरिंग-पूर्ण भाषा आज उपलब्ध है जो सामान्य-उद्देश्य प्रोग्रामिंग के लिए बनाई गई है?


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

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

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

2
कोक को अपने डोमेन में सुंदर "मुख्यधारा" के रूप में माना जा सकता है, प्रतियोगियों के साथ (एचओएल, एजडा, एसीएल और इस तरह) बहुत कम दिखाई देता है।
एसके-तर्क

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

जवाबों:


24

आज कोई भी मुख्यधारा की बहुउद्देश्यीय गैर ट्यूरिंग पूर्ण भाषा नहीं हैं। हालाँकि, कई गैर-ट्यूरिंग संपूर्ण डोमेन विशिष्ट भाषाएँ हैं। ANSI SQL, नियमित अभिव्यक्तियाँ, डेटा भाषाएँ (HTML, CSS, JSON, इत्यादि), और s-अभिव्यक्तियाँ कुछ उल्लेखनीय उदाहरण हैं।

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

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


CSS3 है ट्यूरिंग-पूर्ण।
SK-तर्क

5
@ एसके-तर्क सीएसएस HTML के बिना समझ में आता है, इसे किसी भी तरह के एक्सएमएल पर लागू किया जा सकता है और आपको किसी भी अन्य प्रारूप के लिए मोटे तौर पर संगत आकार (नोड्स, सिबलिंग ऑर्डर, आदि नाम वाले पेड़) के साथ इसे लागू करने से कुछ भी नहीं रोकता है। मैंने SVG फ़ाइल के लिए व्यक्तिगत रूप से CSS नियम लिखे हैं। यह HTML के लिए अधिक सामान्य है क्योंकि HTML अन्य प्रारूपों की तुलना में कहीं अधिक सामान्य है।

2
@ माइक, कि एक टूटी हुई सादृश्य है। CSS3 के शब्दार्थ, प्रस्तुति भाषा के शब्दार्थों से घनिष्ठ रूप से जुड़े होते हैं।
SK- तर्क

2
ध्यान दें कि SQL विंडिंग और CTE (यानी SQL: 2003) के साथ भी ट्यूरिंग-पूर्ण है।
जोर्ग डब्ल्यू मित्तग

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

-3

अपूर्ण भाषाओं को ट्यूरिंग करने का कारण मुख्यधारा नहीं है, जब भी आपको इसकी आवश्यकता होती है तब इसे लागू करना आसान होता है और फिर भी आपको इसकी आवश्यकता होती है। एक दिलचस्प उदाहरण बिटकॉइन-स्क्रिप्ट है: https://github.com/bitcoin/bitcoin/blob/master/src/criptcript.pp


5
वास्तव में? मन को खरोंच से लागू करने का मन, अपने दम पर, अगर यह इतना आसान है?
तर्क

क्या यह केवल आपकी राय है या आप इसे किसी तरह वापस कर सकते हैं?
gnat

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

1
हालांकि मैं सहमत हूं कि भाषा को ट्यूरिंग-अधूरा रखने के लिए यह तुच्छ नहीं है। स्पष्ट ट्यूरिंग टारपीट्स के बिना भी, इसमें हमेशा एक कंपाइलर बग हो सकता है जो अंतर्निहित प्लेटफॉर्म में से एक का उपयोग करना संभव बनाता है।
मौगंरा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.