कुल भाषा जो केवल एक ट्यूरिंग पूर्ण भाषा है, व्याख्या कर सकती है


16

कोई भी भाषा जो ट्यूरिंग पूर्ण नहीं है, वह इसके लिए एक दुभाषिया नहीं लिख सकती है। मुझे कोई सुराग नहीं है कि मैंने कहाँ पढ़ा है लेकिन मैंने देखा है कि यह कई बार इस्तेमाल किया गया है। ऐसा लगता है कि यह एक प्रकार की "परम" गैर ट्यूरिंग पूरी भाषा को जन्म देती है; एक (एस) जो केवल कर सकते हैंट्यूरिंग मशीन द्वारा व्याख्या की जा सकती है। इन भाषाओं में जरूरी नहीं कि वे सभी कुल कार्यों को न्यूट्रल से न्यूट्रल तक की गणना कर सकें और न ही वे आवश्यक रूप से आइसोमॉर्फिक होंगे (जो कि शायद परम भाषा ए और बी मौजूद है जैसे कि एक फ़ंक्शन एफ मौजूद है जो ए की गणना कर सकता है लेकिन बी नहीं कर सकता है)। Agda ईश्वर की प्रणाली T की व्याख्या कर सकती है और Agda कुल है ताकि इस तरह की अंतिम भाषा को कड़ाई से अधिक शक्तिशाली होना चाहिए कि Godel की प्रणाली T यह प्रतीत होगी। मुझे ऐसा लगता है कि इस तरह की भाषा कम से कम एजडा जितनी शक्तिशाली होगी (हालांकि मेरे पास कोई सबूत नहीं है, सिर्फ एक कूबड़ है)।

क्या इस नस में कोई शोध किया गया है? क्या परिणाम ज्ञात हैं (अर्थात् ऐसी "अंतिम" भाषा ज्ञात है)?

बोनस: मैं चिंतित हूं कि एक रोग संबंधी मामला मौजूद है जो ऐसे कार्यों की गणना नहीं कर सकता है जो गोडेल के सिस्टम टी अभी तक केवल एक ट्यूरिंग मशीन द्वारा व्याख्या की जा सकती है क्योंकि यह कुछ बहुत ही अजीब कार्यों की गणना करने की अनुमति देता है। क्या यह मामला है या हम यह जान सकते हैं कि इस तरह की भाषा कुछ भी गॉडेल के सिस्टम टी की गणना करने में सक्षम होगी?


2
जिस तरह से आप शब्दावली का उपयोग करते हैं, उसके कारण आपके बयान भ्रमित कर रहे हैं। शब्दावली पर भरोसा करने के स्थान पर अपने प्रश्न को गणितीय रूप से कठोर और स्पष्ट तरीके से बताने का प्रयास करें ताकि हम आपके प्रश्न को समझ सकें। कम्प्यूटिंग सिद्धांत के संदर्भ में प्रोग्रामिंग भाषा से आपका क्या अभिप्राय है? क्या आप गणना योग्य कार्यों की गणना करते हैं?
केव

1
आप जो पढ़ते हैं, उसके बारे में मेरा अनुमान: यदि कोई भाषा पर्याप्त रूप से मजबूत है और इसमें अन्य वर्ग के कार्यों का सार्वभौमिक कार्य शामिल है तो यह उस वर्ग के लिए विकर्ण कार्य को परिभाषित कर सकता है। यदि यह कुल कार्यों का एक वर्ग है तो विकर्ण कार्य वर्ग में नहीं हो सकता है।
केव

यह अनौपचारिक रूप से कहा गया था, जहां मैंने इसे पाया। मैंने जो कुछ यहां दिया, उसकी तर्ज पर सचमुच कुछ। मुझे नहीं पता कि इसे गणितीय तरीके से कैसे बताया जाए। कुछ पढ़ने के बाद मुझे यकीन नहीं है कि "कार्यों के एक वर्ग का विकर्ण समारोह" क्या है। मुझे लगता है कि आपके संदर्भ में मेरा मतलब है कि "कुल कार्यों का एक वर्ग अपना सार्वभौमिक कार्य नहीं कर सकता है" और इसलिए मुझे लगता है कि मैं पूछ रहा हूं "कुल कार्यों के किस वर्ग के लिए यह मामला है कि कुल कार्यों का कोई वर्ग शामिल नहीं है" C के लिए सार्वभौमिक कार्य "। यदि मैं समझता हूं कि "सार्वभौमिक कार्य" क्या है तो मुझे लगता है कि यह सही है।
जेक

1
कड़े शब्दों में, यह एक शोध-स्तर का प्रश्न नहीं है। इसके अलावा, यह सामुदायिक विकि क्यों है? या यह है?
लेडी बाउर

"ऐसा लगता है कि यह एक प्रकार की" परम "नॉन ट्रूइंग पूरी भाषा को जन्म देता है; एक (एस) जो केवल एक ट्यूरिंग मशीन द्वारा व्याख्या की जा सकती है।" इस दावे का पालन न करें कि यह एक गैर अनुक्रमिक लगता है , आपका क्या मतलब है, ऐसा क्यों लगता है?
vzn

जवाबों:


42

यह एक बुरी तरह से प्रचलित प्रश्न है, तो चलिए सबसे पहले इसे समझ लेते हैं। मैं इसे कम्प्यूटेबिलिटी सिद्धांत की शैली करने जा रहा हूं। इस प्रकार मैं स्ट्रिंग के बजाय संख्याओं का उपयोग करूंगा: स्रोत कोड का एक टुकड़ा एक संख्या है, बजाय प्रतीकों के एक स्ट्रिंग। यह वास्तव में बात नहीं, आप की जगह ले सकती है के साथ रों टी आर मैं एन जी नीचे भर में।Nstring

चलो एक होना जोड़ी समारोहm,n

बता दें कि एक प्रोग्रामिंग लैंग्वेज निम्नलिखित डेटा द्वारा दी गई है:L=(P,ev)

  1. एक डिसाइडेबल सेट "वैध कार्यक्रमों" की, औरPN
  2. एक कम्प्यूटेशनल और आंशिक फ़ंक्शन ev:P×NN

तथ्य यह है कि निर्णायक है इसका मतलब है कि कुल कम्प्यूटेबल नक्शा v a l i d है : N{ 0 , 1 } जैसे कि v a l i d ( n ) = 1Pvalid:N{0,1} । अनौपचारिक रूप से, हम कह रहे हैं कि यह बताना संभव है कि क्या दिया गया स्ट्रिंग एक मान्य कोड ऑफ कोड है। फ़ंक्शनवी आवश्यक रूप से हमारी भाषा के लिए एक दुभाषिया है:वी ( एम , एन ) इनपुट एन परकोड एम चलाता है- परिणाम अपरिभाषित हो सकता है।valid(n)=1nPevev(m,n)mn

अब हम कुछ शब्दावली पेश कर सकते हैं:

  1. एक भाषा है कुल यदि सभी के लिए एक कुल समारोह है मीटर पीnev(m,n)mP
  2. एक भाषा व्याख्या भाषा एल 2 = ( पी 2 , वी 2 ) वहां मौजूद है, तो यू पी 1 ऐसी है कि वी 1 ( यू , n , मी ) वी 2 ( एन , मीटर ) सभी के लिए n पीL1=(P1,ev1) L2=(P2,ev2)uP1ev1(u,n,m)ev2(n,m)nPऔर । यहाँ यू के लिए सिम्युलेटर है एल 2 में लागू एल 1 । यह भी कहा जाता है सार्वभौमिक कार्यक्रम के लिए एल 2mNuL2L1L2

" इंटरप्रिट्स एल 2 " की अन्य परिभाषाएं संभव हैं, लेकिन मुझे अभी इसमें नहीं आने देना चाहिए।L1L2

हम कहते हैं कि यदि वे एक दूसरे की व्याख्या करते हैं तो और एल 2 बराबर हैं।L1L2

नहीं है "सबसे शक्तिशाली" भाषा ट्यूरिंग मशीन की जिसमें (जो आप के रूप में "एक ट्यूरिंग मशीन" को देखें) n एन एक ट्यूरिंग मशीन और का एक एन्कोडिंग है φ ( n , मी ) है आंशिक कम्प्यूटेबल फ़ंक्शन जो " इनपुट m पर n द्वारा ट्यूरिंग मशीन एन्कोडेड चलाता है "। यह भाषा अन्य सभी भाषाओं को आपस में जोड़ सकती है, जाहिर है क्योंकि हमें वी की आवश्यकता होती है ।T=(N,φ)nNφ(n,m)nmev

प्रोग्रामिंग लैंग्वेज की हमारी परिभाषा बहुत सुकून देती है। निम्नलिखित के माध्यम से जाने के लिए, हमें तीन और शर्तों की आवश्यकता है:

  • लागू उत्तराधिकारी समारोह: वहाँ है यू सी सी पी ऐसी है किवी ( एस यू सी सी , एम ) = मीटर + 1 सभी के लिए मीटर एन ,LsuccPev(succ,m)=m+1mN
  • लागू विकर्ण समारोह: वहाँ है d मैं एक पी ऐसी है किवी ( मैं एक ग्राम , मीटर ) = मीटर , मीटर सभी के लिए मीटर एन ,LdiagPev(diag,m)=m,mmN
  • कार्यों की संरचना के तहत बंद कर दिया है: यदि एल लागू और तो यह भी लागूजी ,LLfgfg

एक क्लासिक परिणाम यह है:

प्रमेय: यदि कोई भाषा स्वयं की व्याख्या कर सकती है तो वह कुल नहीं है।

प्रमाण। मान लीजिए कुल langauge के लिए सार्वभौमिक कार्यक्रम है एल में लागू एल सभी के लिए, अर्थात मीटर पी और एन एन , वी ( यू , मीटर , एन ) वी ( मीटर , n ) उत्तराधिकारी के रूप में, विकर्ण, और v ( यू , - ) एल में लागू होते हैं , इसलिए उनकी रचना k ↦ हैuLLmPnN

ev(u,m,n)ev(m,n).
ev(u,)L । वहां मौजूद एन 0पी ऐसी है किवी ( एन 0 , कश्मीर ) वी ( यू , कश्मीर , कश्मीर ) + 1 , लेकिन फिर वी ( यू , एन 0 , एन 0) वी (kev(u,k,k)+1n0Pev(n0,k)ev(u,k,k)+1 है के रूप में कोई संख्या का अपना उत्तराधिकारी के बराबर है, यह इस प्रकार है कि एल कुल नहीं है या कि एल खुद की व्याख्या नहीं करता है। QED।
ev(u,n0,n0)ev(n0,n0)ev(u,n0,n0)+1
LL

निरीक्षण करें कि हम उत्तराधिकारी के नक्शे को किसी अन्य निर्धारण-मुक्त मानचित्र से बदल सकते हैं।

यहाँ थोड़ा प्रमेय है जो मुझे लगता है कि एक गलतफहमी को साफ कर देगा।

प्रमेय: प्रत्येक कुल भाषा की व्याख्या अन्य कुल भाषा द्वारा की जा सकती है।

प्रमाण। को कुल भाषा होने दो । हम कुल प्राप्त एल ' जो व्याख्या एल के आसपास के द्वारा एल अपने मूल्यांकनकर्ता वी । दरअसल, चलो पी ' = { 0 , एन | n पी } { 1 , 0 } और परिभाषित वी ' के रूप में वी ' ( , एन , मीटरLLLLevP={0,nnP}{1,0}ev जाहिर है, एल ' कुल है, क्योंकि एल कुल है। कि देखने के लिए एल ' अनुकरण कर सकते हैं एल बस ले यू = 1 , 0

ev(b,n,m)={ev(n,m)if b=0,ev(m0,m1)if b=1 and m=m0,m1
LLLL , तब से वी ' ( यू , मीटर , एन ) वी ( मीटर , n ) , के रूप में आवश्यक। QED।u=1,0ev(u,m,n)ev(m,n)

व्यायाम: [2014-06-27 जोड़ा] भाषा ऊपर का निर्माण संरचना के तहत बंद नहीं है। ताकि प्रमेय का सबूत फिक्स एल ' को संतुष्ट करता है अतिरिक्त आवश्यकताओं अगर एल करता है।LLL

दूसरे शब्दों में, आप कभी नहीं कुल भाषा की व्याख्या करने के लिए ट्यूरिंग मशीन की पूरी शक्ति की जरूरत एक से थोड़ा अधिक शक्तिशाली कुल भाषा - एल ' काफ़ी है। भाषा एल ' से सख्ती से अधिक शक्तिशाली है एल क्योंकि यह व्याख्या एल , लेकिन एल खुद की व्याख्या नहीं करता है।LLLLLL


अगर मैंने विकी चेकबॉक्स चेक किया तो यह अनजाने में था।
एंड्रेज बॉयर

2
क्या भाषाओं में कोई अतिरिक्त शक्ति है जहाँ आप यह नहीं बता सकते हैं कि दिया गया कार्यक्रम वैध है या नहीं?
फीलिदा

3
@DaniPhye: यदि भाषा सिंटैक्स अर्धविराम नहीं है तो आप वाक्य रचना में कम्प्यूटेशनल पावर को "छिपा" सकते हैं। उदाहरण के लिए, भाषा नियमों की आवश्यकता हो सकती है कि प्रत्येक फ़ंक्शन को थोड़ा सा सुसज्जित किया जाए जो बताता है कि फ़ंक्शन कुल है या नहीं। हम तब लागू कर सकते थे is_total, जो अन्यथा गैर-विवादास्पद है, लेकिन मूल्यांकन को लागू नहीं कर सका (क्योंकि आपको परिणामी फ़ंक्शन के बिट की गणना भी करनी होगी)। सामान्य तौर पर मैं कहूंगा कि यह एक प्रोग्रामिंग भाषा नहीं है यदि आप इसके लिए एक पार्सर भी लागू नहीं कर सकते हैं।
लेडी बाउर

3
"यदि कोई भाषा स्वयं की व्याख्या कर सकती है तो यह कुल नहीं है" इस परिणाम के साथ जेल: एफ-ओमेगा के लिए एक स्व-व्याख्याकार ?
कैक्टस


18

कोई भी भाषा जो ट्यूरिंग पूर्ण नहीं है, वह इसके लिए एक दुभाषिया नहीं लिख सकती है।

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


आह! यह एक अच्छी बात है। इसलिए भाषा की गणना के आधार पर कुछ आवश्यकताएँ होनी चाहिए। ऐसा लगता है कि उस कथन को सत्य बनाने के लिए भाषा की शक्ति पर कुछ न्यूनतम आवश्यकता होनी चाहिए। ऐसा लगता है कि अगर हम मांग करते हैं कि यह बुनियादी अंकगणितीय समस्याओं को हल करने में सक्षम है तो यह पकड़ में आ सकता है।
जेक

@ जेक आप वास्तव में "भाषा कम से कम एक गैर-स्थिर फ़ंक्शन को परिभाषित करता है" या "भाषा एक से अधिक फ़ंक्शन को परिभाषित करती है" जैसे कुछ अविश्वसनीय रूप से कमजोर हो सकती है। मेरा तुच्छ स्पष्ट रूप से "तुच्छ" की किसी भी उचित परिभाषा के लिए तुच्छ है।
डेविड रिचेर्बी

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