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


10

क्या प्रोग्रामिंग भाषाएं (या तर्क) हैं जो एक फ़ंक्शन को लागू कर सकते हैं (या व्यक्त कर सकते हैं यदि केवल और अगर एक कम्प्यूटेशनल विशेषण फ़ंक्शन है? एफf:NNf


किसी ने मुझे साबित कर दिया कि ऐसी भाषा बनाना असंभव है जो केवल समाप्ति कार्यक्रमों को स्वीकार करे। चूंकि आप सवाल बहुत समान हैं, मुझे लगता है कि नहीं।
21

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

@FUZxxl यह कई समापन कार्यक्रमों पर कब्जा नहीं करता है, वास्तव में यहां तक ​​कि फ़ंक्शन च (x) = 1 इस भाषा में व्यक्त करना असंभव है। इसके अलावा, मुझे लगता है कि इस तरह के कार्यों को कुल कार्यात्मक प्रोग्रामिंग द्वारा कब्जा कर लिया जाता है क्योंकि हर फ़ंक्शन कुल फ़ंक्शन होता है।
चाओ जू

@FZxxl, मुझे नहीं लगता कि यह सही है, लेकिन इस तरह की भाषा को सीमित करना होगा। उदाहरण के लिए, एक भाषा जो परिमित नियतात्मक ऑटोमेटा के बराबर थी, को समाप्त करने की गारंटी होगी, लेकिन जो गणना कर सकता है, उसमें बेहद सीमित होगी।
जेमाइट

@FUZxxl, इस तरह के विवरण का विवरण महत्वपूर्ण है। एक प्रोग्रामिंग भाषा डिजाइन करना आसान है जिसमें हर प्रोग्राम समाप्त हो जाता है। एक भाषा को डिजाइन करना एक अलग बात है जिसे हम प्रत्येक कम्प्यूटेशनल फ़ंक्शन को व्यक्त कर सकते हैं।
विजय डी।

जवाबों:


9

ऐसी कोई भाषा नहीं है।

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

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

प्रमेय: मान लीजिए कम्प्यूटेशनल का एक कम्प्यूटेशनल अनुक्रम है। फिर एक संगणनात्मक आक्षेप है जो अनुक्रम में नहीं है।f0,f1,f2,

सबूत। हम एक बायजेक्शन निम्नानुसार करते हैं। मानों को परिभाषित करने के लिए और , हम : g ( 2 k ) g ( 2 k + 1 )g:NNg(2k)g(2k+1)fk(2k)

  • अगर तो सेट और ,g ( 2 k ) = 2 k + 1 g ( 2)fk(2k)=2kg(2k)=2k+1g(2k+1)=2k
  • अगर तो और ।जी ( 2 कश्मीर ) = 2 कश्मीर जी ( 2 कश्मीर + 1fk(2k)2kg(2k)=2kg(2k+1)=2k+1

स्पष्ट रूप से, प्रत्येक के लिए , से क्योंकि । इसके अलावा, कम्प्यूटेशनल है और यह एक आपत्ति है क्योंकि यह स्वयं का विलोम है। QED। जी कश्मीर जी ( 2 कश्मीर ) कश्मीर ( 2 कश्मीर ) जीkNgfkg(2k)fk(2k)g


आपको इस और ट्रिक की भी आवश्यकता क्यों है ? का उपयोग करते हुए पर्याप्त होना चाहिए। 2 k + 1 g ( k ) = f k ( k ) + 12k2k+1g(k)=fk(k)+1
फ़ूजएक्सएक्सएक्स

@FUxxxxl: यदि आप का उपयोग करते हैं , तो परिणामी कार्य नहीं हैfk(k)+1
Vor

आपको यह सुनिश्चित करने की आवश्यकता है कि जीवनात्मक है। g
बाउर

प्रारंभिक कथन गलत है, साहित्य में ऐसी कई भाषाएँ हैं।
नथानिएल

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