क्या कोई भी भाषा है जो अपने संकलक ट्यूरिंग-पूर्ण को व्यक्त कर सकती है?


12

Tex.SE पर एक टिप्पणी ने मुझे आश्चर्यचकित कर दिया। बयान अनिवार्य रूप से है:

अगर मैं भाषा X में भाषा X के लिए एक कंपाइलर लिख सकता हूं, तो X ट्यूरिंग-पूर्ण है।

कम्प्यूटेबिलिटी और औपचारिक भाषाओं में, यह है:

अगर फैसला करता और , तो ।एल एल टी एमएम एल एफ एल = आर MLLTMMLFL=RE

यहाँ सभी ट्यूरिंग मशीन एन्कोडिंग की भाषा को दर्शाता है और में मशीनों द्वारा गणना किए गए कार्यों के सेट को दर्शाता है । एफ एल एलLTMFLL

क्या ये सच है?


नज़दीकी, सोचें / सहमति दें कि इस तरह से कुछ वास्तविक thm पास होना चाहिए, जैसे कि कोई भी "nontrivial" या "पर्याप्त रूप से जटिल" भाषा जो अपने स्वयं के सिम्युलेटर को व्यक्त कर सकती है वह TM पूर्ण है। एक संकलक आमतौर पर एक सिम्युलेटर का नेक हिस्सा होता है। यह वास्तव में एक "डिजाइन पैटर्न" है जो कई टीएम पूर्णता प्रमाणों में पाया गया है लेकिन शायद सामान्यीकृत / औपचारिक नहीं किया गया है। शायद कंप्यूटर विज्ञान चैट में आगे के विश्लेषण / चर्चा के लिए एक विषय । संदिग्ध / अनुमान है कि कुछ अन्य रोचक थीम्स कुछ हद तक "हर nontrivial / पर्याप्त रूप से जटिल पुनरावर्ती और पुनरावृत्ति करने योग्य भाषा को मैप किया जा सकता है / हर दूसरे के लिए कम किया जा सकता है"।
vzn

1
मैंने InterpretMe नामक एक गूढ़ भाषा बनाई है, जो कुछ भी नहीं कर सकती है, लेकिन यह स्वयं की व्याख्या करने वाला है, इसलिए यह निश्चित रूप से ट्यूरिंग पूर्ण नहीं है।
गैर

क्या आप दूसरे कथन की व्याख्या कर सकते हैं? क्या है ? यह कथन पहले से कैसे संबंधित है? M
रीइनियरियरपोस्ट

@reinierpost आम तौर पर की संख्या को दर्शाता है , कुछ (स्वीकार्य) एन्कोडिंग दिया। इसलिए, । द्वारा मैं ट्यूरिंग मशीनों की भाषा द्वारा गणना किए गए कार्यों के सेट को निरूपित करता हूं । एम एल टी एम = { एम | एम  एक ट्यूरिंग मशीन है } एफ एल एलMMLTM={MM is a Turing machine}FLL
राफेल

दावा राज्य के लिए एक बेहतर तरीका हो सकता है: "यदि वहाँ एक टीएम के साथ और , तो ।एम एल एल एम = एल एफ एल = आर MMLLM=LFL=RE
राफेल

जवाबों:


13

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

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


1 क्लेने की दूसरी पुनरावृत्ति प्रमेय कहती है कि, किसी भी गणना के लिए आंशिक पुनरावर्ती कार्य (जैसे, पूर्णांक के रूप में कार्यक्रमों के किसी भी कोडिंग के लिए), और आंशिक पुनरावर्ती कार्य  , एक पूर्णांक  ऐसा है कि  फ़ंक्शन है जो से लिए मैप करता है । तो, विशेष रूप से, वह फ़ंक्शन है जो स्वीकार करता है यदि और अन्यथा अस्वीकार करता है। प्रमेय द्वारा, एक पूर्णांक  है जो प्रोग्राम । यही है, अपने स्वयं के कोडिंग स्वीकार करता है (ϕi)i0Q(x,y)pϕpyQ(p,y)Qx=ypϕp(y)=Q(p,y)ϕpp और अन्य सभी इनपुट्स को अस्वीकार करता है।


1
उस भाषा में हर कार्यक्रम किस अर्थ में उस भाषा के लिए संकलक है? हर प्रोग्राम एक प्रोग्राम होता है जो उस भाषा में एक प्रोग्राम को इनपुट करता है और उस भाषा में एक अलग प्रोग्राम को आउटपुट करता है, हाँ, लेकिन आमतौर पर क्वीन को कंपाइलर नहीं माना जाता है।
user253751

1
मुझे लगता है कि @immibis एक बिंदु है: अपने संकलक है जबकि भाषा में सभी कार्यक्रम हैं , तो स्पष्ट रूप से नहीं है भाषा में। क्या मैं कुछ भूल रहा हूँ? ( पी ) = { x आर टी यू आर एन पी } पी ( एक्स ) = पी सीcc(P)={xreturn P}P(x)=Pc
राफेल

1
@ मिनीबिस I (विश्वासपूर्वक) लगता है कि आप सही हैं। ऐसा लगता है कि मेरे लिखने का मतलब यह था कि हर कार्यक्रम का शब्दार्थ है "आउटपुट योर इनपुट"। मुझे जो लिखा गया है, वह काफी करीब लगता है, यह शायद वही था जो मैं पहली बार कहने का था। या शायद मैं अति-भाग्यशाली था कि मेरे गलत उत्तर से लेकर सही उत्तर तक की संपादित-दूरी इतनी छोटी थी। :-)
डेविड रिचेर्बी

1
अब उत्तर कहता है "इसके इनपुट को अनदेखा करता है और इसके इनपुट की एक प्रति आउटपुट करता है" - आप दोनों नहीं कर सकते।
user253751

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