यदि आप इसके बारे में सोचते हैं, तो आर्किटेक्चर अमूर्त मशीनें हैं। वे वर्णन करते हैं कि कैसे सावधानीपूर्वक बनाए गए सिलिकॉन की एक गांठ "व्यवहार" करना चाहिए। आर्किटेक्चर और ट्यूरिंग मशीनों के बीच का अंतर दृष्टिकोण में एक मौलिक बदलाव की तुलना में अधिक पैमाने का मामला है।
ट्यूरिंग मशीनों का लाभ यह है कि एक उपयोगी प्रमाण का एक सेट है जो ट्यूरिंग मशीन का उपयोग करने के लिए बहुत आसान है। यह साबित करना सरल है कि ट्यूरिंग मशीन का अनुकरण करने के लिए कोई भी मशीन काफी शक्तिशाली है किसी भी समस्या को ट्यूरिंग मशीन कर सकती है (डुह)। हालाँकि, यह अधिक दिलचस्प हो जाता है जब आप एक कम्प्यूटेशनल फ़ंक्शन को परिभाषित करते हैं । यह पता चला है कि एक कम्प्यूटेशनल फ़ंक्शन की कई संगत परिभाषाएं हैं। यदि आप अपने सभी व्यवहार को कम्प्यूटेशनल कार्यों के रूप में परिभाषित कर सकते हैं, तो आपको ट्यूरिंग मशीन में सिम्युलेटेड किया जा सकता है।
तो मान लें कि आपके पास एक आर्किटेक्चर है जो सीधे LISP शैली के कार्यक्रमों का समर्थन करता है, और दूसरा x86 जैसा है जो अधिक प्रक्रियात्मक है। आपका मित्र दावा करता है "LISP अधिक अभिव्यंजक है, इसलिए आप इस मशीन पर प्रोग्राम लिख सकते हैं जिसे आप अपने x86 पर कभी नहीं लिख सकते।" यह मुकाबला करने के लिए क्रूर है (खासकर जब से आप शायद पर्याप्त एलआईएसपी नहीं जानते हैं)। हालाँकि, आप कई अमूर्त मशीनों का दुरुपयोग कर सकते हैं जैसे ट्यूरिंग मशीन:
- आपकी LISP मशीन फैंसी हो सकती है, लेकिन यह सब कुछ कर सकती है lambda पथरी के लिए reducible है। आपका दोस्त उत्सुकता से सिर हिलाता है। लैम्ब्डा कैलकुलस फंक्शनल प्रोग्रामर्स के लिए एक संस्कारी चीज है।
- मेरा x86 फैंसी हो सकता है, लेकिन यह सब कुछ कर सकता है एक रजिस्टर मशीन के लिए reducible है। एक बार फिर, अपने दोस्त से कोई सवाल नहीं। रजिस्टरों आधुनिक कंप्यूटर सिद्धांत में SO पेस हैं!
- किसी भी रजिस्टर मशीन को उस ट्यूरिंग मशीन की नकल करने वाली ट्यूरिंग मशीन के रूप में तैयार किया जा सकता है। अब आपका दोस्त आश्चर्य करता है कि आप पंच-टेप युग में वापस क्यों पहुंच रहे हैं।
- और आपकी लैम्ब्डा कैलकुलस मशीन को ट्यूरिंग मशीन तक भी कम किया जा सकता है। * आपके दोस्त वस्तुओं, लेकिन आप उन्हें चर्च-ट्यूरिंग थीसिस पर इंगित करते हैं, और वे शर्म से अपना सिर लटकाते हैं।
- इस प्रकार मेरा x86 बॉक्स आपके फैंसी LISP आधारित मशीन कुछ भी कर सकता है!
बेशक, अन्य उदाहरण के बहुत सारे हैं। जीवन के कॉनवे का गेम ट्यूरिंग पूर्ण साबित हुआ, जिसका अर्थ है कि यह सैद्धांतिक रूप से आपके कंप्यूटर को कुछ भी कर सकता है। ऐसा करने का सबसे आसान तरीका जीवन में एक ट्यूरिंग मशीन का निर्माण करना था । मैं इसे ऊपर लाता हूं क्योंकि यह एक ऐसा मामला होगा जिसे आप एक अमूर्त मशीन कहते हैं जिसे शाब्दिक वास्तुकला माना जाता है! आप कल्पना कर सकते हैं कि एब्सट्रैक्ट मॉडल्स की सहायता के बिना जीवन में कम्प्यूटेबिलिटी का दावा कितना कठिन होगा (मुझे यकीन है कि बिल्ली एक एक्स 64 मॉडलिंग नहीं कर रही है, कैश पीकिंग के साथ पूरा, बस यह साबित करने के लिए कि जीवन कम्प्यूटेशनल है!)
अंत में, आर्किटेक्चर और अमूर्त मशीनों के बीच बड़ा अंतर यह है कि आर्किटेक्चर आमतौर पर प्रदर्शन से संबंधित होते हैं। आर्किटेक्चर जानना चाहते हैं कि आप कितनी तेजी से कुछ कर सकते हैं। यदि आप कर सकते हैं तो सार मशीनें केवल जानने के साथ संतुष्ट हैं। वॉन न्यूमन राज्य मशीनों के लिए विकसित यूनिवर्सल कंस्ट्रक्टर पर विचार करें । यह साबित करने के लिए पर्याप्त था कि यूसी काम कर सकता है , इस बात से कोई फर्क नहीं पड़ता कि लेखकों के पास वास्तव में इसे देखने के लिए पर्याप्त कंप्यूटिंग शक्ति नहीं थी।
मूल्य आर्किटेक्चर यह प्रदर्शित करने के लिए भुगतान करते हैं कि वे कितनी तेजी से काम कर सकते हैं कि यह साबित करना बहुत मुश्किल है कि वे हर चीज की गणना कर सकते हैं । उसके लिए, आर्किटेक्चर सही वापस चारों ओर मुड़ते हैं और अमूर्त मशीनों का उपयोग करना शुरू करते हैं।