2009-03-29 6 views
12

मुझे आश्चर्य है कि MATLAB Turing complete (= कम्प्यूटेशनल रूप से सार्वभौमिक है, यानी "यदि इसका उपयोग किसी एकल-टेप वाली ट्यूरिंग मशीन को अनुकरण करने के लिए किया जा सकता है")?मुझे आश्चर्य है कि MATLAB ट्यूरिंग पूर्ण है (कम्प्यूटेशनल रूप से सार्वभौमिक)?

+0

मैंने अपने प्रश्न का खुलासा किया कि मुझे वास्तव में क्या मतलब है। –

+1

मैटलैब में ट्यूरिंग मशीन को अपने लिए साबित करने के लिए क्यों लागू नहीं करें? – nibot

+0

ध्यान दें कि एक सच्ची ट्यूरिंग मशीन को एक अनंत टेप की आवश्यकता होती है, इसलिए मुझे लगता है कि सख्ती से बोलना, किसी भी भाषा को केवल "ट्यूरिंग पूर्ण" हो सकता है जब तक कि हम मनमाने ढंग से बड़ी मात्रा में स्मृति मानते हैं। – nibot

उत्तर

38

ट्यूरिंग पूर्ण होने के नाते वास्तव में वास्तविक दुनिया की भाषाओं के लिए एक बहुत ही कम बार है। Wikipedia (जोर मेरा) के अनुसार:

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

इसके अलावा, MATLAB सुविधाओं आप एक अपेक्षाकृत आधुनिक 3GL/4GL से उम्मीद होती है के कई है। यह एक वीएम, आई/ओ, यूजर इंटरफेस संरचनाओं, गणितीय ऑपरेटरों (जाहिर है), डेटाटाइप, उपयोगकर्ता परिभाषित-कार्यों, आदि के साथ पूरा है। आप मैटलैब पर्यावरण के बाहर मैटलैब प्रोग्राम भी प्रदान कर सकते हैं।

ध्यान दें कि यह अच्छा भाषा एक पूरी तरह से अलग प्रश्न है या नहीं।

+0

और आप मैटलैब – Rodrigo

+0

के बाहर मैटलैब libs का भी उपयोग कर सकते हैं, लेकिन मैटलैब में पूरी तरह से मैटलैब "कंपाइलर" लिखना संभव होगा, या मैटलैब को क्रमशः मैटलैब में फिर से लिखना संभव होगा? पाठ्यक्रम के – karsten

+0

@karsten। मैं कल्पना नहीं कर सकता कि ऐसी चीज बहुत व्यावहारिक है, लेकिन मुझे कोई कारण नहीं दिखता कि यह क्यों संभव नहीं होगा। –

3

मुझे लगता है कि आप प्रोग्रामिंग भाषाओं और स्क्रिप्टिंग भाषाओं के बीच अंतर करते हैं, और MATLAB की प्रकृति के कारण यह एक स्क्रिप्टिंग भाषा की तरह दिखाई देता है? यदि ऐसा है, तो आपकी राय उस प्रोग्रामिंग भाषा पर निर्भर हो सकती है।

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

+0

"प्रोग्रामिंग बनाम स्क्रिप्टिंग" तर्क MATLAB के लिए और भी जटिल हो सकता है क्योंकि यह "स्क्रिप्ट" और "एम-फाइल" (यानी "फ़ंक्शन") के बीच भेद खींचता है। – gnovice

+1

csh = c shell, शेल स्क्रिप्टिंग भाषाओं में से एक आमतौर पर लिनक्स, यूनिक्स, बीएसडी, आदि पर पाया जाता है –

+1

लॉल, ksh के बारे में क्या? के तेज ...:) –

संबंधित मुद्दे