संक्षेप में :
ट्यूरिंग मशीनों के पास और पीसी जैसे सामान्य कंप्यूटरों के लिए अनिवार्य प्रोग्रामिंग भाषाओं की विशेषता है, (ट्यूरिंग मशीन के बजाय खुद रैंडम एक्सेस मशीन (RAM के करीब)) एक स्पष्ट मेमोरी की अवधारणा है जिसे स्टोर करने के लिए संशोधित किया जा सकता है (मध्यवर्ती परिणाम )। यह संगणना का एक ऑटोमैटिक दृश्य है, जिसमें एक राज्य की अवधारणा (परिमित राज्य नियंत्रण और मेमोरी सामग्री दोनों शामिल होती है) जो अभिकलन प्रक्रिया के रूप में बदल सकती है।
अधिकांश अन्य मॉडल अधिक सार हैं। यद्यपि वे गणना को एक मूल संरचना के परिवर्तन चरणों के उत्तराधिकार के रूप में व्यक्त कर सकते हैं, ये परिवर्तन गणितीय अर्थों के अंतरंग ब्रह्मांड के एक प्रकार में लागू होते हैं। यह गुणों को संरक्षित कर सकता है, जैसे कि संदर्भात्मक पारदर्शिता, जो गणितीय विश्लेषण को सरल बना सकता है। लेकिन यह प्राकृतिक भौतिक मॉडल से अधिक दूरस्थ है जो स्मृति के समतल पर निर्भर करता है।
इस प्रकार कोई प्राकृतिक कार्यात्मक मशीन नहीं हैं, नीचे बताए गए एक बड़े अर्थ को छोड़कर, क्योंकि सॉफ्टवेयर वास्तव में हार्डवेयर से अलग नहीं है।
ट्यूरिंग का कम्प्यूटेशन के रूप में ट्यूरिंग का संदर्भ शायद इस तथ्य से आता है कि उनका मॉडल, ट्यूरिंग मशीन इस भौतिक वास्तविकता बाधा के सबसे करीब था, जिसने इसे कम्प्यूटेशन का अधिक सहज मॉडल बना दिया।
आगे के विचार :
अभिकलन के कई मॉडल हैं, जिन्हें एक संगणना की अवधारणा को सबसे सामान्य संभव तरीके से पकड़ने के लिए डिज़ाइन किया गया था। उनमें ट्यूरिंग मशीनें शामिल हैं, वास्तव में कई अलग-अलग स्वादों में, लैम्ब्डा कैलकुलस (स्वादों में भी), अर्ध-थू पुनर्लेखन प्रणाली, आंशिक पुनरावर्ती कार्य, संयोजन तर्क।
वे सभी गणितज्ञों द्वारा प्रयुक्त विभिन्न तकनीकों के कुछ पहलुओं को व्यक्त करने या संगणना व्यक्त करने के लिए पकड़ते हैं। और कुछ हद तक कुछ प्रोग्रामिंग भाषा डिजाइन के आधार के रूप में इस्तेमाल किया गया है (उदाहरण के लिए पुनर्लेखन प्रणाली के लिए स्नोबोल , कॉम्बिनेटरों के लिए एपीएल , लैम्ब्डा कैलकुलस के लिए लिस्प / स्कीम ) और अक्सर आधुनिक प्रोग्रामिंग भाषाओं में विविध तरीकों से जोड़ा जा सकता है।
एक प्रमुख परिणाम यह है कि ये सभी संगणना मॉडल समतुल्य साबित हुए, जो चर्च-ट्यूरिंग थीसिस की ओर ले जाते हैं कि अभिकलन का कोई भी भौतिक रूप से प्राप्य मॉडल इन मॉडलों में से किसी से अधिक नहीं कर सकता है। गणना का एक मॉडल कहा जाता है ट्यूरिंग पूर्ण यदि यह इन मॉडलों में से एक के बराबर साबित हो सकता है, इसलिए उन सभी के बराबर है।
नाम अलग हो सकता था। ट्यूरिंग मशीन (टीएम) का संदर्भ के रूप में चयन शायद इस तथ्य के कारण है कि यह इन मॉडलों में से सबसे सरल है, बारीकी से नकल करना (हालांकि सरल रूप से) जिस तरह से एक मानव गणना और लागू करने के लिए काफी आसान है (एक सीमित परिमित रूप में) ) एक भौतिक उपकरण के रूप में, इस हद तक कि ट्यूरिंग मशीनों का निर्माण लेगो सेट के साथ किया गया है । मूल विचार के लिए किसी गणितीय परिष्कार की आवश्यकता नहीं है। यह शायद मॉडल की सादगी और वास्तविकता है जिसने इसे यह संदर्भ स्थान दिया।
जिस समय एलन ट्यूरिंग ने अपने कंप्यूटिंग डिवाइस का निर्माण किया, उस समय अन्य प्रस्ताव सारणीबद्धता की औपचारिक परिभाषा के रूप में काम करने के लिए थे, गणित की नींव के लिए एक महत्वपूर्ण मुद्दा था (देखें
एनट्सचेइदंगस्प्रोब्लेम )। ट्यूरिंग प्रस्ताव को उस समय के विशेषज्ञों द्वारा माना जाता था, क्योंकि गणना योग्यता क्या होनी चाहिए, इस पर एक सबसे निश्चित रूप से ज्ञात कार्य है (देखें संगणना और पुनरावृत्ति , आरआई सोर, 1996, धारा 3.2 देखें)। विभिन्न प्रस्ताव समतुल्य साबित हुए, लेकिन ट्यूरिंग अधिक आश्वस्त थे। [युवल फिल्मस की टिप्पणियों से]
यह ध्यान दिया जाना चाहिए कि, एक हार्डवेयर बिंदु से, हमारे कंप्यूटर ट्यूरिंग मशीन नहीं हैं, बल्कि इसे रैंडम एक्सेस मशीन (रैम) कहा जाता है , जो कि ट्यूरिंग पूर्ण भी हैं।
विशुद्ध रूप से अनिवार्य भाषा (जो भी इसका मतलब हो सकता है) शायद सबसे बुनियादी मॉडल के लिए इस्तेमाल की जाने वाली औपचारिकताएं हैं, जैसे ट्यूरिंग मशीन, या कंप्यूटर की असेंबली भाषा (इसके बाइनरी कोडिंग को छोड़ देना)। दोनों कुख्यात अपठनीय हैं, और महत्वपूर्ण कार्यक्रमों को लिखने के लिए बहुत कठिन हैं। दरअसल, मशीन के निर्देशों के प्रत्यक्ष उपयोग की तुलना में, असेंबली लैंग्वेज में प्रोग्रामिंग को आसान बनाने के लिए कुछ उच्च स्तर की विशेषताएं हैं। बुनियादी अनिवार्य मॉडल भौतिक दुनिया के लिए बंद हैं, लेकिन बहुत उपयोगी नहीं हैं।
इससे गणना के उच्च स्तर के मॉडल के विकास में तेजी आई, जो इसे कई प्रकार की कम्प्यूटेशनल तकनीकों के साथ मिश्रण करना शुरू कर दिया, जैसे कि सबप्रोग्राम और फ़ंक्शन कॉल, मेमोरी लोकेशन का नामकरण, नामों का स्कूप, मात्रा का ठहराव और डमी वैरिएबल, पहले से ही किसी न किसी रूप में उपयोग किया जाता है। गणित और तर्क में, और यहां तक कि बहुत ही अमूर्त अवधारणाएं जैसे कि प्रतिबिंब ( लिस्प 1958)।
प्रोग्रामिंग प्रतिमानों में प्रोग्रामिंग भाषाओं का वर्गीकरण जैसे कि अनिवार्य, कार्यात्मक, तर्क, वस्तु उन्मुख भाषा के डिजाइन में इनमें से कुछ तकनीकों की प्रधानता के आधार पर है, और कुछ कंप्यूटिंग विशेषताओं के लिए उपस्थिति या अनुपस्थिति है जो कार्यक्रमों के लिए कुछ गुणों को लागू करते हैं या कार्यक्रम के टुकड़े भाषा में लिखे गए हैं।
कुछ मॉडल भौतिक मशीनों के लिए सुविधाजनक हैं। कुछ अन्य एल्गोरिदम के उच्च-स्तरीय विवरण के लिए अधिक सुविधाजनक हैं, यह उस एल्गोरिथ्म के प्रकार पर निर्भर हो सकता है जिसे वर्णित किया जाना है। कुछ सैद्धांतिक भी एल्गोरिदम के गैर निर्धारक विनिर्देश का उपयोग करते हैं, और यहां तक कि अधिक पारंपरिक प्रोग्रामिंग शब्दों में cn का अनुवाद किया जा सकता है। लेकिन कोई बेमेल समस्या नहीं है, क्योंकि हमने एक परिष्कृत कंपाइलर / दुभाषिया तकनीक विकसित की है जो प्रत्येक मॉडल को आवश्यकतानुसार दूसरे में अनुवाद कर सकती है (जो कि चर्च-ट्यूरिंग थीसिस का आधार भी है)।
अब, आपको अपने कंप्यूटर को कच्चे हार्डवेयर के रूप में नहीं देखना चाहिए। इसमें बूलियन सर्किट्री शामिल है जो बहुत प्राथमिक प्रसंस्करण करता है। लेकिन इसका अधिकांश भाग कंप्यूटर के अंदर के माइक्रो-प्रोग्राम द्वारा संचालित होता है, जिनके बारे में आपको कभी पता नहीं चलता। फिर आपके पास ऑपरेटिंग सिस्टम है जो आपकी मशीन को हार्डवेयर से अलग दिखने वाली चीज़ों से अलग बनाता है, उसके ऊपर आपके पास एक वर्चुअल मशीन हो सकती है जो बाइट-कोड निष्पादित करती है, और फिर एक उच्च-स्तरीय भाषा जैसे Pyva और Jathon, या Haskell , या OCaml, कि बाइट कोड में संकलित किया जा सकता है।
प्रत्येक स्तर पर आप एक अलग गणना मॉडल देखते हैं। इस प्रकार हार्डवेयर स्तर को सॉफ्टवेयर स्तर से अलग करना बहुत कठिन होता है ताकि एक विशिष्ट कम्प्यूटेशनल मॉडल को एक मशीन में असाइन किया जा सके। और चूंकि वे सभी इंटरट्रांसलेबल हैं, एक परम हार्डवेयर कम्प्यूटेशन मॉडल का विचार बहुत अधिक भ्रम है।
लैम्ब्डा कैलकुलस मशीन मौजूद है: यह एक कंप्यूटर है जो लैम्ब्डा कैलकुलस एक्सप्रेशन को कम कर सकता है। आसानी से किया जाने वाला विज्ञापन।
विशेष मशीन आर्किटेक्चर के बारे में
वास्तव में, पीटर टेलर के उत्तर के पूरक , और हार्डवेयर / सॉफ़्टवेयर इंटरविनिंग के बाद, विशिष्ट मशीनों को एक विशिष्ट प्रतिमान के लिए बेहतर रूप से अनुकूलित किया गया है, और उनके मूल सॉफ्टवेयर को उस प्रतिमान के आधार पर एक प्रोग्रामिंग भाषा में लिखा गया था।
इसमें शामिल है
मूल रूप से, ये भी अनिवार्य हार्डवेयर संरचनाएं हैं, लेकिन विशेष प्रतिमान सुविधाओं या माइक्रोप्रोग्राम्ड दुभाषियों के साथ कम से कम अपेक्षित प्रतिमान के लिए अनुकूल हैं।
दरअसल, विशिष्ट प्रतिमानों के लिए विशेष हार्डवेयर लंबे समय में कभी सफल नहीं होता है। कारण यह है कि वेनिला हार्डवेयर पर किसी भी प्रतिमान को लागू करने के लिए संकलन तकनीक अधिक से अधिक प्रभावी हो गई, ताकि विशेष हार्डवेयर की इतनी आवश्यकता न हो। इसके अलावा, हार्पर के प्रदर्शन में तेजी से सुधार हो रहा था, लेकिन विशेष हार्डवेयर की तुलना में वेनिला हार्डवेयर पर सुधार की लागत (बुनियादी सॉफ्टवेयर के विकास सहित) को आसानी से परिशोधन किया गया था। विशेष हार्डवेयर लंबे समय में प्रतिस्पर्धा नहीं कर सका।
फिर भी, और हालांकि मेरे पास इस पर कोई सटीक डेटा नहीं है, मुझे संदेह होगा कि इन उपक्रमों ने कुछ विचारों को छोड़ दिया, जो मशीनों, यादों और निर्देश सेट वास्तुकला के विकास को प्रभावित करते थे।
(a -> a) -> a
।