काउंटर मशीन: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Abstract machine used in a formal logic and theoretical computer science}} काउंटर मशीन एक अमूर्त मशीन ह...")
 
No edit summary
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Abstract machine used in a formal logic and theoretical computer science}}
{{Short description|Abstract machine used in a formal logic and theoretical computer science}}
काउंटर मशीन एक [[अमूर्त मशीन]] है जिसका उपयोग [[औपचारिक तर्क]] और [[सैद्धांतिक कंप्यूटर विज्ञान]] में गणना के मॉडल के लिए किया जाता है। यह चार प्रकार की [[रजिस्टर मशीन]]ों में से सबसे आदिम है। एक काउंटर मशीन में एक या अधिक अनबाउंडेड ''रजिस्टरों'' का एक सेट शामिल होता है, जिनमें से प्रत्येक एक गैर-नकारात्मक पूर्णांक, और मशीन के पालन के लिए (आमतौर पर अनुक्रमिक) अंकगणित और नियंत्रण निर्देशों की एक सूची रख सकता है। काउंटर मशीन का उपयोग आमतौर पर पारस्परिक बहिष्करण सिद्धांत के संबंध में समानांतर एल्गोरिदम को डिजाइन करने की प्रक्रिया में किया जाता है। जब इस तरीके से उपयोग किया जाता है, तो काउंटर मशीन का उपयोग मेमोरी एक्सेस के संबंध में कम्प्यूटेशनल सिस्टम के अलग-अलग समय-चरणों को मॉडल करने के लिए किया जाता है। प्रत्येक संबंधित कम्प्यूटेशनल चरण के लिए मेमोरी एक्सेस के संबंध में गणनाओं को मॉडलिंग करके, समान मेमोरी पते पर दो (या अधिक) थ्रेड्स द्वारा एक साथ लेखन ऑपरेशन, इंटरलॉकिंग से बचने के लिए ऐसे मामले में समानांतर एल्गोरिदम डिज़ाइन किया जा सकता है।
'''काउंटर मशीन''' [[अमूर्त मशीन|एब्स्ट्रेक्ट मशीन]] है जिसका उपयोग [[औपचारिक तर्क|फार्मल लॉजिक]] और [[सैद्धांतिक कंप्यूटर विज्ञान|थ्योरेटिकल कंप्यूटर साइंस]] में गणना के मॉडल के लिए किया जाता है। इस प्रकार यह चार प्रकार की [[रजिस्टर मशीन]] में से सबसे मौलिक है। काउंटर मशीन में या अधिक अनबाउंडेड ''रजिस्टरों'' का सेट सम्मिलित होता है, जिनमें से प्रत्येक ऋणात्मक पूर्णांक, और मशीन के पालन के लिए (सामान्यतः अनुक्रमिक) अंकगणित और नियंत्रण निर्देशों की सूची रख सकता है। इस प्रकार काउंटर मशीन का उपयोग सामान्यतः पारस्परिक बहिष्करण सिद्धांत के संबंध में समानांतर एल्गोरिदम को डिजाइन करने की प्रक्रिया में किया जाता है। जब इस विधि से उपयोग किया जाता है, जिससे काउंटर मशीन का उपयोग मेमोरी एक्सेस के संबंध में कम्प्यूटेशनल सिस्टम के भिन्न-भिन्न समय-चरणों को मॉडल करने के लिए किया जाता है। इस प्रकार प्रत्येक संबंधित कम्प्यूटेशनल फेज के लिए मेमोरी एक्सेस के संबंध में गणनाओं को मॉडलिंग करके, समान मेमोरी पते पर दो (या अधिक) थ्रेड्स द्वारा साथ लेखन ऑपरेशन, इंटरलॉकिंग से बचने के लिए ऐसे स्थिति में समानांतर एल्गोरिदम डिज़ाइन किया जा सकता है।


== बुनियादी सुविधाएँ ==
== मूलभूत सुविधाएँ ==


किसी दिए गए काउंटर मशीन मॉडल के लिए निर्देश सेट छोटा है - केवल एक से छह या सात निर्देशों तक। अधिकांश मॉडलों में कुछ अंकगणितीय ऑपरेशन और कम से कम एक सशर्त ऑपरेशन होता है (यदि स्थिति सत्य है, तो कूदें)। तीन आधार मॉडल, प्रत्येक तीन निर्देशों का उपयोग करते हुए, निम्नलिखित संग्रह से तैयार किए गए हैं। (संक्षिप्ताक्षर मनमाने हैं।)
किसी दिए गए काउंटर मशीन मॉडल के लिए निर्देश सेट छोटा है केवल से छह या सात निर्देशों तक अधिकांश मॉडलों में कुछ अंकगणितीय ऑपरेशन और कम से कम नियमबद्ध ऑपरेशन होता है (यदि स्थिति सत्य है, तो जम्प करे)। तीन आधार मॉडल, प्रत्येक तीन निर्देशों का उपयोग करते हुए, निम्नलिखित संग्रह से तैयार किए गए हैं। (संक्षिप्ताक्षर अनैतिक हैं।)
* सीएलआर (आर): क्लियर रजिस्टर आर। (आर को शून्य पर सेट करें।)
* CLR (r): क्लियर रजिस्टर r। (r को शून्य पर सेट करें।)
* आईएनसी (आर): रजिस्टर आर की सामग्री को बढ़ाएं।
* INC (r): रजिस्टर r की कंटेंट को बढ़ाएं।
* डीईसी (आर): रजिस्टर आर की सामग्री को घटाएं।
* DEC (r): रजिस्टर r की कंटेंट को घटाएं।
* सीपीवाई (आर<sub>j</sub>, आर<sub>k</sub>): रजिस्टर आर की सामग्री को कॉपी करें<sub>j</sub>आर पंजीकृत करने के लिए<sub>k</sub>आर की सामग्री को छोड़कर<sub>j</sub>अखंड।
* CPY (r<sub>j</sub>, r<sub>k</sub>): रजिस्टर ''r<sub>j</sub>'' की कंटेंट को कॉपी करें ''r<sub>k</sub>'' पंजीकृत करने के लिए r<sub>j</sub> की कंटेंट को छोड़कर बनाये रहते है।
* जेजेड (आर, जेड): यदि रजिस्टर आर में शून्य है तो निर्देश जेड पर जाएं अन्यथा क्रम में जारी रखें।
* JZ (r, Z): यदि रजिस्टर r में शून्य है तो निर्देश Z पर जाएं अन्यथा क्रम में जारी रखें।
* जेई (आर<sub>j</sub>, आर<sub>k</sub>, z): यदि रजिस्टर आर की सामग्री<sub>j</sub>रजिस्टर आर की सामग्री के बराबर है<sub>k</sub>फिर निर्देश पर जाएं अन्यथा क्रम से जारी रखें।
* JE (r<sub>j</sub>, r<sub>k</sub>, z): यदि रजिस्टर r<sub>j</sub> की कंटेंट रजिस्टर r<sub>k</sub> की कंटेंट के समान है फिर निर्देश पर जाएं अन्यथा क्रम से जारी रखें।


इसके अलावा, मशीन में आमतौर पर एक HALT निर्देश होता है, जो मशीन को रोक देता है (आमतौर पर परिणाम की गणना के बाद)।
इसके अतिरिक्त, मशीन में सामान्यतः HALT निर्देश होता है, जो मशीन को रोक देता है (सामान्यतः परिणाम की गणना के पश्चात्)।


ऊपर उल्लिखित निर्देशों का उपयोग करते हुए, विभिन्न लेखकों ने कुछ काउंटर मशीनों पर चर्चा की है:
ऊपर उल्लिखित निर्देशों का उपयोग करते हुए, विभिन्न लेखकों ने कुछ काउंटर मशीनों पर चर्चा की है:
* सेट 1: { आईएनसी (आर), डीईसी (आर), जेजेड (आर, जेड) }, (मिन्स्की (1961, 1967), लैम्बेक (1961))
* सेट 1: { INC (r), DEC (r), JZ (r, Z) }, (मिन्स्की (1961, 1967), लैम्बेक (1961))
* सेट 2: { सीएलआर (आर), आईएनसी (आर), जेई (आर)।<sub>j</sub>, आर<sub>k</sub>, z) }, (एर्शोव (1958), पीटर (1958) जैसा कि शेफर्डसन-स्टर्गिस (1964); मिन्स्की (1967); शॉनहेज (1980) द्वारा व्याख्या की गई है)
* सेट 2: { CLR (r), INC (r), JE (r)।<sub>j</sub>, r<sub>k</sub>, z) }, (एर्शोव (1958), पीटर (1958) जैसा कि शेफर्डसन-स्टर्गिस (1964); मिन्स्की (1967); शॉनहेज (1980) द्वारा व्याख्या की गई है)
* सेट 3: {आईएनसी (आर), सीपीवाई (आर)।<sub>j</sub>, आर<sub>k</sub>), जेई (आर<sub>j</sub>, आर<sub>k</sub>, z) }, (एल्गॉट-रॉबिन्सन (1964), मिन्स्की (1967))
* सेट 3: {INC (r), CPY (r)।<sub>j</sub>, आर<sub>k</sub>), JE (r<sub>j</sub>, r<sub>k</sub>, z) }, (एल्गॉट-रॉबिन्सन (1964), मिन्स्की (1967))


तीन काउंटर मशीन बेस मॉडल में समान कम्प्यूटेशनल शक्ति होती है क्योंकि एक मॉडल के निर्देश दूसरे मॉडल से प्राप्त किए जा सकते हैं। सभी [[ट्यूरिंग मशीन]]ों की कम्प्यूटेशनल शक्ति के बराबर हैं। उनकी एकात्मक प्रसंस्करण शैली के कारण, काउंटर मशीनें आमतौर पर तुलनीय ट्यूरिंग मशीनों की तुलना में तेजी से धीमी होती हैं।
तीन काउंटर मशीन बेस मॉडल में समान कम्प्यूटेशनल पावर होती है क्योंकि मॉडल के निर्देश दूसरे मॉडल से प्राप्त किए जा सकते हैं। इस प्रकार सभी [[ट्यूरिंग मशीन]] की कम्प्यूटेशनल पावर के समान हैं। उनकी एकात्मक प्रसंस्करण शैली के कारण, काउंटर मशीनें सामान्यतः तुलनीय ट्यूरिंग मशीनों की तुलना में तेजी से धीमी होती हैं।


== वैकल्पिक नाम, वैकल्पिक मॉडल ==
== वैकल्पिक नाम, वैकल्पिक मॉडल ==


{{main|Counter-machine model}}
{{main|काउंटर-मशीन मॉडल}}


काउंटर मशीन मॉडल कई अलग-अलग नामों से जाने जाते हैं जो उनकी विशिष्टताओं के आधार पर उन्हें अलग करने में मदद कर सकते हैं। निम्नलिखित निर्देश में JZDEC (r) एक मिश्रित निर्देश है जो यह देखने के लिए परीक्षण करता है कि कोई रजिस्टर r खाली है या नहीं; यदि ऐसा है तो निर्देश I पर जाएँ<sub>z</sub>, अन्यथा यदि नहीं तो r की सामग्री को घटाएँ:
काउंटर मशीन मॉडल अनेक भिन्न-भिन्न नामों से जाने जाते हैं जो उनकी विशिष्टताओं के आधार पर उन्हें भिन्न करने में सहायता कर सकते हैं। निम्नलिखित निर्देश में JZDEC (r) मिश्रित निर्देश है जो यह देखने के लिए परीक्षण करता है कि कोई रजिस्टर r रिक्त है या नहीं; यदि ऐसा है तो निर्देश I<sub>z</sub> पर जाएँ, अन्यथा यदि नहीं तो r की कंटेंट को घटाएँ जाते है:


* शेफर्डसन-स्टर्गिस मशीन, क्योंकि इन लेखकों ने औपचारिक रूप से अपने मॉडल को आसानी से सुलभ प्रदर्शनी (1963) में बताया था। अतिरिक्त सुविधा निर्देशों के साथ संवर्धित अनुदेश सेट (1) का उपयोग करता है (जेएनजेड शून्य नहीं होने पर जंप है, जेजेड के स्थान पर उपयोग किया जाता है):
* शेफर्डसन-स्टर्गिस मशीन, क्योंकि इन लेखकों ने फार्मल रूप से अपने मॉडल को सरलता से सुलभ प्रदर्शनी (1963) में बताया था। इस प्रकार अतिरिक्त सुविधा निर्देशों के साथ संवर्धित अनुदेश सेट (1) का उपयोग करता है (JNZ शून्य नहीं होने पर जंप है, JZ के स्थान पर उपयोग किया जाता है):
*: {आईएनसी (आर), डीईसी (आर), सीएलआर (आर), सीपीवाई (आर)।<sub>j</sub>, आर<sub>k</sub> ), जेएनजेड (आर, जेड), जे (जेड)}
*: {INC (r), DEC (r), CLR (r), CPY (r)।<sub>j</sub>, r<sub>k</sub> ), JNZ (r, Z), J (Z)}
* मिन्स्की मशीन, क्योंकि [[मार्विन मिंस्की]] (1961) ने मॉडल को औपचारिक रूप दिया। आमतौर पर निर्देश सेट (1) का उपयोग करता है, लेकिन निर्देश-निष्पादन डिफ़ॉल्ट-अनुक्रमिक नहीं है, इसलिए अतिरिक्त पैरामीटर 'z' INC के बाद अगले निर्देश को निर्दिष्ट करता है और JZDEC में विकल्प के रूप में दिखाई देता है:
* मिन्स्की मशीन, क्योंकि [[मार्विन मिंस्की]] (1961) ने मॉडल को फार्मल रूप दिया। सामान्यतः निर्देश सेट (1) का उपयोग करता है, किन्तु निर्देश-निष्पादन डिफ़ॉल्ट-अनुक्रमिक नहीं है, इसलिए अतिरिक्त मापदंड 'z' INC के पश्चात् अगले निर्देश को निर्दिष्ट करता है और JZDEC में विकल्प के रूप में दिखाई देता है:
*: { INC ( r, z ), JZDEC ( r, z<sub>true</sub>, साथ<sub>false</sub>) }
*: { INC ( r, z ), JZDEC ( r, z<sub>true</sub>, z<sub>false</sub>) }
* प्रोग्राम मशीन, प्रोग्राम [[कंप्यूटर]], नाम मिन्स्की (1967) ने मॉडल को दिया क्योंकि, एक कंप्यूटर की तरह इसके निर्देश क्रमिक रूप से आगे बढ़ते हैं जब तक कि एक सशर्त छलांग सफल नहीं होती। (आमतौर पर) निर्देश सेट (1) का उपयोग करता है लेकिन इसे शेफर्सन-स्टर्गिस मॉडल के समान संवर्धित किया जा सकता है। JZDEC को अक्सर अलग कर दिया जाता है:
* प्रोग्राम मशीन, प्रोग्राम [[कंप्यूटर]], नाम मिन्स्की (1967) ने मॉडल को दिया क्योंकि, कंप्यूटर की तरह इसके निर्देश क्रमिक रूप से आगे बढ़ते हैं इस प्रकार जब तक कि नियमबद्ध जम्प सफल नहीं होती है। (सामान्यतः) निर्देश सेट (1) का उपयोग करता है किन्तु इसे शेफर्सन-स्टर्गिस मॉडल के समान संवर्धित किया जा सकता है। JZDEC को अधिकांशतः भिन्न कर दिया जाता है:
*: { INC ( r ), DEC ( r ), JZ ( r, z<sub>true</sub> )}
*: { INC ( r ), DEC ( r ), JZ ( r, z<sub>true</sub> )}
* अबेकस मशीन, नाम लैम्बेक (1961) ने मेल्ज़ाक (1961) मॉडल के सरलीकरण के लिए दिया था, और बूलोस-बर्गेस-जेफरी (2002) इसे क्या कहते हैं। मिन्स्की (1961) मॉडल के तरीके से अगले निर्देश को निर्दिष्ट करने के लिए निर्देश सेट (1) का उपयोग करता है लेकिन एक अतिरिक्त पैरामीटर z के साथ;
* अबेकस मशीन, नाम लैम्बेक (1961) ने मेल्ज़ाक (1961) मॉडल के सरलीकरण के लिए दिया था, और बूलोस-बर्गेस-जेफरी (2002) इसे क्या कहते हैं। मिन्स्की (1961) मॉडल के विधि से अगले निर्देश को निर्दिष्ट करने के लिए निर्देश सेट (1) का उपयोग करता है किन्तु अतिरिक्त मापदंड z के साथ;
*: { INC ( r, z ), JZDEC (r, z<sub>true</sub>, साथ<sub>false</sub> ) }
*: { INC ( r, z ), JZDEC (r, z<sub>true</sub>, z<sub>false</sub> ) }
* लैम्बेक मशीन, एक वैकल्पिक नाम बूलोस-बर्गेस-जेफरी (2002) ने अबेकस मशीन को दिया। अगले निर्देश को निर्दिष्ट करने के लिए एक अतिरिक्त पैरामीटर के साथ निर्देश सेट (1-कम) का उपयोग करता है:
* लैम्बेक मशीन, वैकल्पिक नाम बूलोस-बर्गेस-जेफरी (2002) ने अबेकस मशीन को दिया था। अगले निर्देश को निर्दिष्ट करने के लिए अतिरिक्त मापदंड के साथ निर्देश सेट (1-कम) का उपयोग करता है:
*: { INC ( r, z ), JZDEC ( r, z<sub>true</sub>, साथ<sub>false</sub> ) }
*: { INC ( r, z ), JZDEC ( r, z<sub>true</sub>, z<sub>false</sub> ) }
* उत्तराधिकारी मशीन, क्योंकि यह 'उत्तराधिकारी ऑपरेशन' का उपयोग करती है, और पीनो स्वयंसिद्धों से काफी मिलती-जुलती है। उत्तराधिकारी रैम मॉडल के लिए आधार के रूप में उपयोग किया जाता है। उदाहरण के लिए निर्देश सेट (2) का उपयोग करता है। शॉनहेज को उनके RAM0 और RAM1 मॉडल के आधार के रूप में, जो उनके [[ सूचक मशीन ]] SMM मॉडल की ओर ले जाता है, वैन एम्डे बोस (1990) में भी संक्षेप में चर्चा की गई है:
* उत्तराधिकारी मशीन, क्योंकि यह 'उत्तराधिकारी ऑपरेशन' का उपयोग करती है, और पीनो स्वयंसिद्धों से अधिक मिलती-जुलती है। उत्तराधिकारी रैम मॉडल के लिए आधार के रूप में उपयोग किया जाता है। उदाहरण के लिए निर्देश सेट (2) का उपयोग करता है। शॉनहेज को उनके RAM0 और RAM1 मॉडल के आधार के रूप में, जो उनके [[ सूचक मशीन |सूचक मशीन]] SMM मॉडल की ओर ले जाता है, वैन एम्डे बोस (1990) में भी संक्षेप में चर्चा की गई है:
*: {सीएलआर (आर), आईएनसी (आर), जेई (आर)।<sub>j</sub>, आर<sub>k</sub>, z ) }
*: {CLR (r), INC (r), JE (r)।<sub>j</sub>, r<sub>k</sub>, z ) }
* एल्गॉट-रॉबिन्सन मॉडल, उनके आरएएसपी मॉडल (1964) को परिभाषित करने के लिए उपयोग किया जाता है। इस मॉडल को प्रारंभ में एक खाली रजिस्टर की आवश्यकता होती है (उदाहरण के लिए [r0] =0)। (उन्होंने इंडेक्स रजिस्टर के रूप में उपयोग करने के लिए एक अतिरिक्त रजिस्टर का उपयोग करके अप्रत्यक्ष संबोधन के साथ उसी मॉडल को संवर्धित किया।)
* एल्गॉट-रॉबिन्सन मॉडल, उनके आरएएसपी मॉडल (1964) को परिभाषित करने के लिए उपयोग किया जाता है। इस मॉडल को प्रारंभ में रिक्त रजिस्टर की आवश्यकता होती है (उदाहरण के लिए [r0] =0)। (उन्होंने इंडेक्स रजिस्टर के रूप में उपयोग करने के लिए अतिरिक्त रजिस्टर का उपयोग करके अप्रत्यक्ष संबोधन के साथ उसी मॉडल को संवर्धित किया।)
*: { आईएनसी (आर), सीपीवाई (आर<sub>s</sub>, आर<sub>d</sub> ), जेई (आर<sub>j</sub>, आर<sub>k</sub>, z ) }
*: { INC (r), CPY (r<sub>s</sub>, r<sub>d</sub> ), JE (r<sub>j</sub>, r<sub>k</sub>, z ) }
* अन्य काउंटर मशीनें: मिन्स्की (1967) दर्शाता है कि इस आलेख के मुख्य पैराग्राफ में वर्णित उपलब्ध निर्देशों के सुपरसेट से तीन बेस मॉडल (प्रोग्राम/मिन्स्की/लैम्बेक-अबेकस, उत्तराधिकारी, और एल्गॉट-रॉबिन्सन) कैसे बनाया जाए। मेल्ज़ाक (1961) मॉडल उपरोक्त से काफी अलग है क्योंकि इसमें 'वृद्धि' और 'घटाना' के बजाय 'जोड़' और 'घटाना' शामिल है। मिन्स्की (1961, 1967) के प्रमाण कि ट्यूरिंग समतुल्यता के लिए एक एकल रजिस्टर पर्याप्त होगा, गणना का प्रतिनिधित्व करने वाले रजिस्टर में गोडेल संख्या को एन्कोड और डीकोड करने के लिए दो निर्देशों {मल्टीप्लाई के, और डीआईवी के} की आवश्यकता होती है। मिन्स्की दर्शाता है कि यदि दो या दो से अधिक रजिस्टर उपलब्ध हैं तो सरल INC, DEC आदि पर्याप्त हैं (लेकिन [[ट्यूरिंग पूर्णता]] प्रदर्शित करने के लिए गोडेल संख्या अभी भी आवश्यक है; एल्गॉट-रॉबिन्सन 1964 में भी प्रदर्शित किया गया है)।
* अन्य काउंटर मशीनें: मिन्स्की (1967) दर्शाता है कि इस आलेख के मुख्य पैराग्राफ में वर्णित उपलब्ध निर्देशों के सुपरसेट से तीन बेस मॉडल (प्रोग्राम/मिन्स्की/लैम्बेक-अबेकस, उत्तराधिकारी, और एल्गॉट-रॉबिन्सन) कैसे बनाया जाए। मेल्ज़ाक (1961) मॉडल उपरोक्त से अधिक भिन्न है क्योंकि इसमें 'वृद्धि' और 'घटाना' के अतिरिक्त 'जोड़' और 'घटाना' सम्मिलित है। मिन्स्की (1961, 1967) के प्रमाण कि ट्यूरिंग समतुल्यता के लिए एकल रजिस्टर पर्याप्त होगा, गणना का प्रतिनिधित्व करने वाले रजिस्टर में गोडेल संख्या को एन्कोड और डीकोड करने के लिए दो निर्देशों {मल्टीप्लाई K, और डीआईवी K} की आवश्यकता होती है। इस प्रकार मिन्स्की दर्शाता है कि यदि दो या दो से अधिक रजिस्टर उपलब्ध हैं तो सरल INC, DEC आदि पर्याप्त हैं (किन्तु [[ट्यूरिंग पूर्णता]] प्रदर्शित करने के लिए गोडेल संख्या अभी भी आवश्यक है; एल्गॉट-रॉबिन्सन 1964 में भी प्रदर्शित किया गया है)।


== औपचारिक परिभाषा ==
== फार्मल परिभाषा ==
एक काउंटर मशीन में निम्न शामिल होते हैं:
एक काउंटर मशीन में निम्न सम्मिलित होते हैं:
# लेबल रहित पूर्णांक-मूल्यवान रजिस्टर: रजिस्टरों का एक सीमित (या कुछ मॉडलों में अनंत) सेट ''आर''<sub>0</sub>... आर<sub>''n''</sub> जिनमें से प्रत्येक किसी एक गैर-नकारात्मक पूर्णांक (0, 1, 2, ... - यानी असीमित) को धारण कर सकता है। रजिस्टर अपना अंकगणित स्वयं करते हैं; एक या अधिक विशेष रजिस्टर हो भी सकते हैं और नहीं भी, जैसे संचायक (इस पर अधिक जानकारी के लिए [[रैंडम-एक्सेस मशीन]] देखें)।
# लेबल रहित पूर्णांक-मूल्यवान रजिस्टर: रजिस्टरों का सीमित (या कुछ मॉडलों में अनंत) सेट ''r''<sub>0</sub>... r<sub>''n''</sub> जिनमें से प्रत्येक किसी ऋणात्मक पूर्णांक (0, 1, 2, ... - अर्थात असीमित) को धारण कर सकता है। इस प्रकार रजिस्टर अपना अंकगणित स्वयं करते हैं; या अधिक विशेष रजिस्टर हो भी सकते हैं और नहीं भी, जैसे संचायक (इस पर अधिक जानकारी के लिए [[रैंडम-एक्सेस मशीन]] देखें)।
# एक राज्य रजिस्टर जो निष्पादित किए जाने वाले वर्तमान निर्देश को संग्रहीत/पहचानता है। यह रजिस्टर परिमित है और उपरोक्त रजिस्टरों से अलग है; इस प्रकार काउंटर मशीन मॉडल [[हार्वर्ड वास्तुकला]] का एक उदाहरण है
# एक स्तर रजिस्टर जो निष्पादित किए जाने वाले वर्तमान निर्देश को संग्रहीत/पहचानता है। यह रजिस्टर परिमित है और उपरोक्त रजिस्टरों से भिन्न है; इस प्रकार काउंटर मशीन मॉडल [[हार्वर्ड वास्तुकला|हार्वर्ड आर्किटेक्चर]] का उदाहरण है
# लेबल किए गए, अनुक्रमिक निर्देशों की सूची: निर्देशों की एक सीमित सूची ''I''<sub>0</sub>... मैं<sub>''m''</sub>. प्रोग्राम स्टोर (परिमित राज्य मशीन के निर्देश) रजिस्टरों के समान भौतिक स्थान पर नहीं है। आमतौर पर, लेकिन हमेशा नहीं, [[कंप्यूटर प्रोग्राम]] की तरह निर्देश अनुक्रमिक क्रम में सूचीबद्ध होते हैं; जब तक कोई छलांग सफल नहीं होती, डिफ़ॉल्ट अनुक्रम संख्यात्मक क्रम में जारी रहता है। सूची में प्रत्येक निर्देश एक (बहुत) छोटे सेट से है, लेकिन इस सेट में अप्रत्यक्ष शामिल नहीं है। ऐतिहासिक रूप से अधिकांश मॉडलों ने इस सेट से अपने निर्देश प्राप्त किए:
# लेबल किए गए, अनुक्रमिक निर्देशों की सूची: निर्देशों की सीमित सूची ''I''<sub>0</sub>... ''I''<sub>''m''</sub>. प्रोग्राम स्टोर (परिमित स्तर मशीन के निर्देश) रजिस्टरों के समान भौतिक स्थान पर नहीं है। सामान्यतः, किन्तु सदैव नहीं, [[कंप्यूटर प्रोग्राम]] की तरह निर्देश अनुक्रमिक क्रम में सूचीबद्ध होते हैं; जब तक कोई जम्प सफल नहीं होती है, डिफ़ॉल्ट अनुक्रम संख्यात्मक क्रम में जारी रहता है। इस प्रकार सूची में प्रत्येक निर्देश (बहुत) छोटे सेट से है, किन्तु इस सेट में अप्रत्यक्ष सम्मिलित नहीं है। ऐतिहासिक रूप से अधिकांश मॉडलों ने इस सेट से अपने निर्देश प्राप्त किए:
:: {वृद्धि (आर), कमी (आर), स्पष्ट (आर); कॉपी (आर<sub>j</sub>,आर<sub>k</sub>), यदि r=0 की सामग्री है तो सशर्त छलांग, यदि r की सामग्री है तो सशर्त छलांग<sub>j</sub>=आर<sub>k</sub>, बिना शर्त कूदो, रुको }
:: {वृद्धि (r), कमी (r), स्पष्ट (r); कॉपी (r<sub>j</sub>,r<sub>k</sub>), यदि r=0 की कंटेंट है तो नियमबद्ध जम्प, यदि r की कंटेंट है तो नियमबद्ध r<sub>j</sub>=r<sub>k</sub>, नियमबद्ध जम्प, हॉल्ट }
::


: कुछ मॉडलों ने या तो उपरोक्त में से कुछ को बिना-पैरामीटर निर्देशों में परमाणुकृत कर दिया है, या उन्हें एक ही निर्देश में जोड़ दिया है जैसे कि सशर्त कूद-अगर-शून्य जेजेड (आर, जेड) से पहले डिक्रीमेंट। निर्देशों के परमाणुकरण या सुविधाजनक निर्देशों को शामिल करने से वैचारिक शक्ति में कोई बदलाव नहीं होता है, क्योंकि एक संस्करण में किसी भी कार्यक्रम को सीधे दूसरे में अनुवादित किया जा सकता है।
: कुछ मॉडलों ने या तो उपरोक्त में से कुछ को बिना-मापदंड निर्देशों में परमाणुकृत कर दिया है, या उन्हें ही निर्देश में जोड़ दिया है जैसे कि नियमबद्ध जम्प-यदि-शून्य JZ (r, Z) से पहले डिक्रीमेंट निर्देशों के परमाणुकरण या सुविधाजनक निर्देशों को सम्मिलित करने से वैचारिक पावर में कोई परिवर्तन नहीं होता है, क्योंकि संस्करण में किसी भी प्रोग्राम को सीधे दूसरे में अनुवादित किया जा सकता है।


:: पूरक [[रजिस्टर-मशीन मॉडल]] में वैकल्पिक निर्देश-सेट पर चर्चा की गई है।
:: पूरक [[रजिस्टर-मशीन मॉडल]] में वैकल्पिक निर्देश-सेट पर चर्चा की गई है।


== उदाहरण: रजिस्टर #2 से #3 == तक गिनती कॉपी करें
उदाहरण: रजिस्टर #2 से #3 तक गणना कॉपी करें
यह उदाहरण दिखाता है कि तीन और उपयोगी निर्देश कैसे बनाएं: स्पष्ट, बिना शर्त जंप और कॉपी।
 
* सीएलआर (जे): रजिस्टर आर की सामग्री साफ़ करें<sub>j</sub>शून्य करने के लिए.
यह उदाहरण दिखाता है कि तीन और उपयोगी निर्देश कैसे बनाएं: स्पष्ट, नियमबद्ध जंप और कॉपी।
* जे (जेड): बिना शर्त निर्देश I पर जाएं<sub>z</sub>.
* CLR (J): रजिस्टर r<sub>j</sub> की कंटेंट स्पष्ट करें शून्य करने के लिए.
* सीपीवाई (एस, डी): स्रोत रजिस्टर आर की सामग्री की प्रतिलिपि बनाएँ<sub>s</sub>गंतव्य रजिस्टर आर के लिए<sub>d</sub>. (वन-इंस्ट्रक्शन सेट कंप्यूटर#ट्रांसपोर्ट ट्रिगर आर्किटेक्चर देखें)
* J (Z): अप्रतिबंध निर्देश I<sub>z</sub> पर जाएं.
बाद में आर<sub>s</sub>इसमें इसकी मूल गणना शामिल होगी (MOVE के विपरीत जो स्रोत रजिस्टर को खाली कर देता है, यानी इसे शून्य पर साफ़ कर देता है)।
* CPY (S, d): स्रोत रजिस्टर r<sub>s</sub> की कंटेंट की प्रतिलिपि बनाएँ गंतव्य रजिस्टर r<sub>d</sub> के लिए. (वन-इंस्ट्रक्शन सेट कंप्यूटर या ट्रांसपोर्ट ट्रिगर आर्किटेक्चर देखें)
पश्चात् में r<sub>s</sub> इसमें इसकी मूल गणना सम्मिलित होगी (MOVE के विपरीत जो स्रोत रजिस्टर को रिक्त कर देता है, अर्थात इसे शून्य पर स्पष्ट कर देता है)।


मूल सेट (1) का उपयोग यहां परिभाषित अनुसार किया गया है:
मूल सेट (1) का उपयोग यहां परिभाषित अनुसार किया गया है:
{|class="wikitable"
{|class="wikitable"
|- style="background-color:#C0C0C0;font-size:9pt;font-weight:bold"  
|- style="background-color:#C0C0C0;font-size:9pt;font-weight:bold"  
! width="54.6" Height="12" | Instruction
! width="54.6" Height="12" | निर्देश
! width="163.2" | Effect on register "j"
! width="163.2" | रजिस्टर "j" पर प्रभाव
! width="240.6" | Effect on  Instruction Counter Register ICR
! width="240.6" | निर्देश काउंटर रजिस्टर आईसीआर पर प्रभाव
! width="248.4" | Summary
! width="248.4" | सारांश
|- style="font-size:9pt"
|- style="font-size:9pt"
| Height="11.4" valign="bottom" | INC ( j )
| Height="11.4" valign="bottom" | INC ( j )
| align="center" valign="bottom" | [j] +1 → j
| align="center" valign="bottom" | [j] +1 → j
| align="center" valign="bottom" | [IC] +1 → IC
| align="center" valign="bottom" | [IC] +1 → IC
| align="center" valign="bottom" | Increment contents of register j; next instruction
| align="center" valign="bottom" | रजिस्टर j की कंटेंट में वृद्धि; अगले निर्देश
|- style="font-size:9pt"
|- style="font-size:9pt"
| Height="11.4" valign="bottom" | DEC ( j )
| Height="11.4" valign="bottom" | DEC ( j )
| align="center" valign="bottom" | [j] -1 → j
| align="center" valign="bottom" | [j] -1 → j
| align="center" valign="bottom" | [IC] +1 → IC
| align="center" valign="bottom" | [IC] +1 → IC
| align="center" valign="bottom" | Decrement contents of register j; next instruction
| align="center" valign="bottom" | रजिस्टर j की घटी हुई कंटेंट; अगले निर्देश
|- style="font-size:9pt"
|- style="font-size:9pt"
| Height="11.4" valign="bottom" | JZ ( j, z)
| Height="11.4" valign="bottom" | JZ ( j, z)
| align="center" valign="bottom" |  
| align="center" valign="bottom" |  
| align="center" valign="bottom" | IF [j] = 0 THEN I<sub>z</sub> → IC ELSE [IC] +1 → IC
| align="center" valign="bottom" | IF [j] = 0 THEN I<sub>z</sub> → IC ELSE [IC] +1 → IC
| align="center" valign="bottom" | If contents of register j=0 then instruction z else next instruction
| align="center" valign="bottom" | यदि रजिस्टर की कंटेंट j=0 है तो निर्देश z अन्यथा अगला निर्देश
|- style="font-size:9pt"
|- style="font-size:9pt"
| Height="11.4" valign="bottom" | HALT
| Height="11.4" valign="bottom" | HALT
Line 89: Line 91:
| align="center" valign="bottom" |  
| align="center" valign="bottom" |  
|}
|}
=== प्रारंभिक नियम ===


प्रारंभ में, रजिस्टर #2 में 2 सम्मिलित है। रजिस्टर #0, #1 और #3 रिक्त हैं (जिनमें 0 है)। रजिस्टर #0 पूरी गणना के समय अपरिवर्तित रहता है क्योंकि इसका उपयोग अप्रतिबंध जम्प के लिए किया जाता है। रजिस्टर #1 स्क्रैच पैड है। प्रोग्राम निर्देश 1 से प्रारंभ होता है।

</