एनओपी (कोड): Difference between revisions
No edit summary |
No edit summary |
||
| Line 7: | Line 7: | ||
==मशीन भाषा निर्देश== | ==मशीन भाषा निर्देश== | ||
कुछ कंप्यूटर अनुदेश सेटों में एक निर्देश सम्मिलित होता है जिसका स्पष्ट उद्देश्य प्रोग्रामर-सुलभ [[प्रोसेसर रजिस्टर]], प्रक्रिया स्थिति या मुख्य मेमोरी में से किसी की स्थिति को बदलना नहीं है। इसे निष्पादित करने के लिए अक्सर [[घड़ी चक्र]]ों की एक अच्छी तरह से परिभाषित संख्या की आवश्यकता होती है। अन्य निर्देश सेटों में, कोई स्पष्ट एनओपी निर्देश नहीं है, लेकिन असेंबली भाषा मेमोनिक एनओपी एक निर्देश का प्रतिनिधित्व करता है जो एनओपी के रूप में कार्य करता है; उदाहरण के लिए, [[SPARC|एसपीएआरसी]] पर, <code>सेठी 0, % | कुछ कंप्यूटर अनुदेश सेटों में एक निर्देश सम्मिलित होता है जिसका स्पष्ट उद्देश्य प्रोग्रामर-सुलभ [[प्रोसेसर रजिस्टर]], प्रक्रिया स्थिति या मुख्य मेमोरी में से किसी की स्थिति को बदलना नहीं है। इसे निष्पादित करने के लिए अक्सर [[घड़ी चक्र]]ों की एक अच्छी तरह से परिभाषित संख्या की आवश्यकता होती है। अन्य निर्देश सेटों में, कोई स्पष्ट एनओपी निर्देश नहीं है, लेकिन असेंबली भाषा मेमोनिक एनओपी एक निर्देश का प्रतिनिधित्व करता है जो एनओपी के रूप में कार्य करता है; उदाहरण के लिए, [[SPARC|एसपीएआरसी]] पर, <code>सेठी 0, %जी0</code>. | ||
किसी एनओपी को मेमोरी तक नहीं पहुंचना चाहिए, क्योंकि इससे मेमोरी में खराबी या पेज में दुर्दशा हो सकती है। | किसी एनओपी को मेमोरी तक नहीं पहुंचना चाहिए, क्योंकि इससे मेमोरी में खराबी या पेज में दुर्दशा हो सकती है। | ||
| Line 23: | Line 23: | ||
!टिप्पणियाँ | !टिप्पणियाँ | ||
|- | |- | ||
| [[Intel|इंटेलl]] [[x86]] [[central processing unit|सीपीयू]] परिवार | | [[Intel|इंटेलl]] [[x86|एक्स86]] [[central processing unit|सीपीयू]] परिवार | ||
| <code> | | <code>एनओपी</code> | ||
| 1; 1–9 for i686 and | | 1; 1–9 for i686 and एक्स86-64 | ||
| [[hexadecimal| | | [[hexadecimal|0एक्स]]90<ref>{{cite web |url=http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf|title=Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference A-Z|access-date=2012-03-01}}</ref> | ||
| | |0एक्स90 लंबे मोड को छोड़कर सभी मोड में एक्ससीhg eaएक्स, eaएक्स को डिकोड करता है, जहां opसीode 0एक्स90 का अभी भी कोई प्रभाव नहीं है। इंटेल के मैनुअल में लंबी एन्कोडिंग का वर्णन किया गया है। | ||
|- | |- | ||
| [[Intel|इंटेलl]] [[8051]] / [[MCS-51|एमसीएस-51]] परिवार | | [[Intel|इंटेलl]] [[8051]] / [[MCS-51|एमसीएस-51]] परिवार | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स00 | ||
| | | | ||
|- | |- | ||
| [[ARM architecture|एआरएम ए32]] | | [[ARM architecture|एआरएम ए32]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स00000000 | ||
| | |यह andeq आर0, आर0, आर0 के लिए है। असेंबली निर्देश एनओपी संभवतः mov आर0, आर0 तक विस्तारित होगा जो 0एक्सE1A00000 (लिटिल-एंडियन आर्किटेक्चर) एन्कोड किया गया है। | ||
|- | |- | ||
| [[ARM architecture#Thumb-2|एआरएम टी32]] (16 बिट) | | [[ARM architecture#Thumb-2|एआरएम टी32]] (16 बिट) | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्सb000 | ||
| | |एडीडी एसपी के लिए ऑपकोड, #0 - स्टैक पॉइंटर में शून्य जोड़ें (कोई ऑपरेशन नहीं)। असेंबली निर्देश एनओपी संभवतः mov आर8, आर8 तक विस्तारित होगा जो 0एक्स46सी0 एन्कोडेड है। | ||
|- | |- | ||
| [[ARM architecture#Thumb-2|एआरएम टी32]] (32 बिट) | | [[ARM architecture#Thumb-2|एआरएम टी32]] (32 बिट) | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्सF3AF 8000 | ||
| | | | ||
|- | |- | ||
| [[ARM architecture#ARMv8_and_64-bit|एआरएम ए64]] (64 बिट) | | [[ARM architecture#ARMv8_and_64-bit|एआरएम ए64]] (64 बिट) | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्सD503201F | ||
| | | | ||
|- | |- | ||
| [[AVR microcontrollers|एवीआर]] | | [[AVR microcontrollers|एवीआर]] | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्स0000 | ||
| | |एक घड़ी चक्र | ||
|- | |- | ||
| rowspan="2" | [[IBM System/360|आईबीएम सिस्टम/360]], [[IBM System/370|आईबीएम सिस्टम/370]], [[IBM System/390|आईबीएम सिस्टम/390]], [[z/Architecture|जेड/आर्किटेक्चर]], [[UNIVAC Series 90|यूनिवैक सीरीज 90]] | | rowspan="2" | [[IBM System/360|आईबीएम सिस्टम/360]], [[IBM System/370|आईबीएम सिस्टम/370]], [[IBM System/390|आईबीएम सिस्टम/390]], [[z/Architecture|जेड/आर्किटेक्चर]], [[UNIVAC Series 90|यूनिवैक सीरीज 90]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स47000000 or 0एक्स470nnnnn or 0एक्स47n0nnnn where "n" is any 4-बिट value. | ||
| rowspan="2" | | | rowspan="2" |एनओपी ("नो-ऑप") और एनओपीआर ("नो-ऑप रजिस्टर") क्रमशः "ब्रांच ऑन कंडीशन" या "ब्रांच ऑन कंडीशन रजिस्टर" निर्देशों का एक उपसमूह हैं; दोनों संस्करणों में NO-OP उत्पन्न करने के लिए दो विकल्प हैं। | ||
एनओपी और एनओपीआईआर दोनों निर्देशों के मामले में, दूसरे बाइट में पहला 0 "मास्क" मान है, परीक्षण करने की स्थिति जैसे कि बराबर, बराबर नहीं, उच्च, निम्न, आदि। यदि मास्क 0 है, तो कोई शाखा नहीं है घटित होना। | |||
एनओपीआईआर निर्देश के मामले में, दूसरे बाइट में दूसरा मान शाखा के लिए रजिस्टर है। यदि रजिस्टर 0 चुना जाता है, तो मास्क मूल्य की परवाह किए बिना कोई शाखा नहीं होती है। इस प्रकार, यदि दूसरे बाइट में दोनों में से कोई भी मान 0 है, तो शाखा नहीं होगी। | |||
एनओपी निर्देश के मामले में, दूसरे बाइट में दूसरा मान संयुक्त आधार रजिस्टर, विस्थापन रजिस्टर और ऑफसेट पते का "आधार" रजिस्टर है। यदि आधार रजिस्टर भी 0 है, तो विस्थापन रजिस्टर या विस्थापन पते के मूल्य की परवाह किए बिना शाखा नहीं ली जाती है। | |||
|- | |- | ||
| <code> | | <code>एनओपीR</code> | ||
| 2 | | 2 | ||
| | | 0एक्स0700 or 0एक्स070n or 0एक्स07n0 where "n" is any 4-बिट value. | ||
|- | |- | ||
| [[SuperH|सुपर एच]] | | [[SuperH|सुपर एच]] | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्स0009 | ||
| | | | ||
|- | |- | ||
| [[MIPS architecture|एमआईपीएस]] | | [[MIPS architecture|एमआईपीएस]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स00000000 | ||
| | |एसएलएल आर0,आर0,0 के लिए खड़ा है, जिसका अर्थ है: तार्किक रूप से रजिस्टर 0 शून्य बिट्स को बाईं ओर स्थानांतरित करें और परिणाम को रजिस्टर 0 में संग्रहीत करें। रजिस्टर 0 पर लिखने पर ध्यान नहीं दिया जाता है; इसमें हमेशा 0 होता है. | ||
|- | |- | ||
| [[MIPS-X|एमआईपीएस-एक्स]] | | [[MIPS-X|एमआईपीएस-एक्स]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स60000019 | ||
| ( | |(आर0,आर0,आर0 जोड़ने के लिए विस्तारित ऑपकोड) | ||
|- | |- | ||
| [[MIX|एमआईएक्स]] | | [[MIX|एमआईएक्स]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 शब्द | ||
| ± * * * * 0 | | ± * * * * 0 | ||
| | |* बाइट्स मनमाने हैं, और 0 से अधिकतम बाइट तक कुछ भी हो सकते हैं (63-99 की सीमा में होना आवश्यक है)। दिव्यएक्स साइन-परिमाण प्रतिनिधित्व का उपयोग करता है। | ||
|- | |- | ||
| [[MMIX|एम]][[MMIX|एमआईएक्स]] | | [[MMIX|एम]][[MMIX|एमआईएक्स]] | ||
| <code> | | <code>एसडब्ल्यूवाईएम</code> | ||
| 4 | | 4 | ||
| | | 0एक्सFD****** | ||
| | |एसडब्ल्यूवाईएम का मतलब है "अपनी मशीनरी के प्रति सहानुभूति रखें"। * अंक मनमाने ढंग से चुने जा सकते हैं। | ||
|- | |- | ||
| [[Motorola 68000 family|मोटोरोला 68000 परिवार]] | | [[Motorola 68000 family|मोटोरोला 68000 परिवार]] | ||
| <code> | | <code>एनओपी</code> | ||
| 2 | | 2 | ||
| | | 0एक्स4E71 | ||
| | | यह को सिंक्रनाइज़ करता है [[Pipeline (computing)|पाइपलाइन]] और निर्देश ओवरलैप को रोकता है।.<ref name="m68ref" /> | ||
|- | |- | ||
| [[Motorola 6809|मोटोरोला 6809]] | | [[Motorola 6809|मोटोरोला 6809]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स12 | ||
| | | | ||
|- | |- | ||
| [[MOS Technology 65xx|एमओएस टेक्नोलॉजी | | [[MOS Technology 65xx|एमओएस टेक्नोलॉजी 65एक्सएक्स]] (उदा. [[6502]]) | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्सEA | ||
| <code>''' | | <code>'''एनओपी'''</code> दो घड़ी चक्रों का उपभोग करता है। [[Illegal opcode|अपरिभाषित ऑपकोड]] में [[NMOS logic|एनएमओएस]] संस्करणों को 65एक्सएक्स परिवार were सीonverted to be एनओपी में अलग-अलग निर्देश लंबाई और चक्र समय के एनओपी में परिवर्तित किया गया था। [[WDC 65C02|65सी02]]. | ||
|- | |- | ||
| <code>एनओपी</code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स60000000 | ||
| ( | | (eएक्सtसमाप्तिed opसीode for <code>ori आर0,आर0,0</code>) | ||
|- | |- | ||
| [[PIC microcontroller|पीआईसी माइक्रोकंट्रोलर]] | | [[PIC microcontroller|पीआईसी माइक्रोकंट्रोलर]] | ||
| <code> | | <code>एनओपी</code> | ||
| 12 बिटs | | 12 बिटs | ||
| 0b000000000000 | | 0b000000000000 | ||
| | |एमओवीडब्ल्यू 0,डब्ल्यू | ||
|- | |- | ||
| [[RISC-V|आरआईएससी-वी]] | | [[RISC-V|आरआईएससी-वी]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स00000013 | ||
| | |एडीडीआई एक्स0, एक्स0, 0 | ||
|- | |- | ||
| [[SPARC|एसपीएआरसी]] | | [[SPARC|एसपीएआरसी]] | ||
| <code> | | <code>एनओपी</code> | ||
| 4 | | 4 | ||
| | | 0एक्स01000000 | ||
| | |सेठी 0, %जी0 के लिए खड़ा है जो हार्डवेयर्ड-टू-जीरो %जी0 रजिस्टर को शून्य करता है | ||
|- | |- | ||
| [[Z80|जेड80]] | | [[Z80|जेड80]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स00 | ||
| | |बिना किसी प्रभाव के कुछ अन्य निर्देश हैं (और वही समय): एलडी ए, ए, एलडी बी, बी आदि। | ||
|- | |- | ||
| [[PDP-10|पीडीपी-10]] | | [[PDP-10|पीडीपी-10]] | ||
| | | जेएफसीएल 0, (पारंपरिक) | ||
| 1 | जम्प, सेटा, सेताई, सीएआई, टीआरएन, टीएलएन | ||
| 25500******* ( | | 1 शब्द | ||
| | | 25500******* (अष्टभुजाकार) | ||
|कूदो कभी नहीं | |||
कभी कूदो मत, कुछ भी सेट मत करो, कभी मत छोड़ो | |||
|- | |- | ||
| [[PDP-11|पीडीपी-11]] | | [[PDP-11|पीडीपी-11]] | ||
| <code> | | <code>एनओपी</code> | ||
| 16 | | 16 बिट्स | ||
| 000240 ( | | 000240 (अष्टभुजाकार) | ||
| | |कोई भी शर्त कोड साफ़ न करें | ||
|- | |- | ||
| [[VAX]] | | [[VAX|वीएएक्स]] | ||
| <code> | | <code>एनओपी</code> | ||
| 1 | | 1 | ||
| | | 0एक्स01 | ||
| | |विलंब प्रोसेसर प्रकार पर निर्भर है | ||
|} | |} | ||
हार्डवेयर डिज़ाइन के दृष्टिकोण से, बस के अनमैप्ड क्षेत्रों को अक्सर शून्य लौटाने के लिए डिज़ाइन किया जाता है; चूंकि [[एनओपी स्लाइड]] व्यवहार अक्सर वांछनीय होता है, यह इसे ऑल-जीरोज़ ऑपकोड के साथ कोडिंग करने में पूर्वाग्रह देता है। | हार्डवेयर डिज़ाइन के दृष्टिकोण से, बस के अनमैप्ड क्षेत्रों को अक्सर शून्य लौटाने के लिए डिज़ाइन किया जाता है; चूंकि [[एनओपी स्लाइड]] व्यवहार अक्सर वांछनीय होता है, यह इसे ऑल-जीरोज़ ऑपकोड के साथ कोडिंग करने में पूर्वाग्रह देता है। | ||
== कोड == | == कोड == | ||
एक | एक कार्य या प्रोग्रामिंग भाषा कथनों का अनुक्रम एक एनओपी या अशक्त कथन है यदि इसका कोई प्रभाव नहीं है। कुछ संदर्भों में कुछ भाषाओं की [[प्रोग्रामिंग भाषा सिंटैक्स|प्रोग्रामिंग भाषा वाक्य - विन्यास]] द्वारा शून्य कथनों की आवश्यकता हो सकती है। | ||
=== अदा === | === अदा === | ||
[[एडा (प्रोग्रामिंग भाषा)]] में, <code>null</code> कथन एनओपी के रूप में कार्य करता है।<ref>[http://www.adaic.org/resources/add_content/standards/05aarm/html/AA-5-1.html#S0134 Ada Reference Manual — null statements]. "The execution of a null_statement has no effect."</ref> जैसा कि वाक्यविन्यास निषिद्ध करता है कि नियंत्रण कथन या | [[एडा (प्रोग्रामिंग भाषा)]] में, <code>null</code> कथन एनओपी के रूप में कार्य करता है।<ref>[http://www.adaic.org/resources/add_content/standards/05aarm/html/AA-5-1.html#S0134 Ada Reference Manual — null statements]. "The execution of a null_statement has no effect."</ref> जैसा कि वाक्यविन्यास निषिद्ध करता है कि नियंत्रण कथन या कार्य खाली हों, <code>null</code> कथन का उपयोग यह निर्दिष्ट करने के लिए किया जाना चाहिए कि किसी कार्रवाई की आवश्यकता नहीं है। (इस प्रकार, यदि प्रोग्रामर कथनों का अनुक्रम लिखना भूल जाता है, तो प्रोग्राम संकलित करने में विफल हो जाएगा।) | ||
=== सी और डेरिवेटिव === | === सी और डेरिवेटिव === | ||
| Line 202: | Line 191: | ||
एक खाली ब्लॉक (यौगिक विवरण) भी एक एनओपी है, और अधिक सुपाठ्य हो सकता है: | एक खाली ब्लॉक (यौगिक विवरण) भी एक एनओपी है, और अधिक सुपाठ्य हो सकता है: | ||
{} | {} | ||
कुछ घटना में, जैसे किसी | कुछ घटना में, जैसे किसी कार्य का मुख्य भाग, एक ब्लॉक का उपयोग किया जाना चाहिए, लेकिन यह खाली हो सकता है। सी में, कथन खाली नहीं हो सकते - सरल कथन ए के साथ समाप्त होने चाहिए; (अर्धविराम) जबकि यौगिक कथन {} (ब्रेसिज़) में संलग्न होते हैं, जिन्हें स्वयं निम्नलिखित अर्धविराम की आवश्यकता नहीं होती है। इस प्रकार उन संदर्भों में जहां एक कथन व्याकरणिक रूप से आवश्यक है, ऐसे कुछ शून्य कथन का उपयोग किया जा सकता है। | ||
शून्य कथन अपने आप में बेकार है, लेकिन व्यापक संदर्भ में इसका वाक्यात्मक उपयोग हो सकता है, उदाहरण के लिए, लूप के संदर्भ में: | शून्य कथन अपने आप में बेकार है, लेकिन व्यापक संदर्भ में इसका वाक्यात्मक उपयोग हो सकता है, उदाहरण के लिए, लूप के संदर्भ में: | ||
| Line 219: | Line 208: | ||
while (getchar() != '\n'); | while (getchar() != '\n'); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
(ध्यान दें कि अंतिम फॉर्म भ्रमित करने वाला हो सकता है, और इस तरह कुछ | (ध्यान दें कि अंतिम फॉर्म भ्रमित करने वाला हो सकता है, और इस तरह कुछ संकलकों या संकलक विकल्पों के साथ एक चेतावनी उत्पन्न होती है, क्योंकि पंक्ति के अंत में कोष्ठक के बाद रखे जाने पर अर्धविराम प्रायः कार्य कॉल निर्देश के अंत को इंगित करता है)। | ||
उपरोक्त कोड | उपरोक्त कोड कार्य गेटसीहर() को तब तक कॉल करना जारी रखता है जब तक कि यह एक \n (न्यूलाइन) वर्ण नहीं लौटाता है, अनिवार्य रूप से मानक इनपुट के वर्तमान रीडिंग स्थान को अगली पंक्ति की प्रारम्भ में तेजी से अग्रेषित करता है। | ||
=== [[फोरट्रान]] === | === [[फोरट्रान]] === | ||
फोरट्रान में, <code> | फोरट्रान में, <code>चालू रखना</code> स्टेटमेंट का उपयोग कुछ संदर्भों में किया जाता है जैसे कि डीओ लूप में अंतिम स्टेटमेंट, यदपि इसका उपयोग कहीं भी किया जा सकता है, और इसमें कोई कार्यक्षमता नहीं होती है। | ||
=== [[जावास्क्रिप्ट]] === | === [[जावास्क्रिप्ट]] === | ||
जावास्क्रिप्ट भाषा में कोई अंतर्निहित एनओपी कथन नहीं है। कई कार्यान्वयन संभव हैं: | जावास्क्रिप्ट भाषा में कोई अंतर्निहित एनओपी कथन नहीं है। कई कार्यान्वयन संभव हैं: | ||
* उपयोग <code>;</code> खाली बयान<ref>MDN JavaScript reference – [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/Empty empty statement]. "The empty statement is a semicolon (<code>;</code>) indicating that no statement will be executed, even if JavaScript syntax requires one."</ref> या <code>{}</code> एनओपी (कोड)#सी_एंड_डेरिवेटिव्स उदाहरणों की तरह ही खाली ब्लॉक स्टेटमेंट; | * उपयोग <code>;</code> खाली बयान<ref>MDN JavaScript reference – [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/Empty empty statement]. "The empty statement is a semicolon (<code>;</code>) indicating that no statement will be executed, even if JavaScript syntax requires one."</ref> या <code>{}</code> एनओपी (कोड)#सी_एंड_डेरिवेटिव्स उदाहरणों की तरह ही खाली ब्लॉक स्टेटमेंट; | ||
* उपयोग <code> | * उपयोग <code>अपरिभाषित</code> या <code>null</code> अभिव्यक्ति को एक पूर्ण कथन के रूप में (एक अभिव्यक्ति कथन) जब पिछली विधियों को वाक्य - विन्यास द्वारा अनुमति नहीं दी जाती है। | ||
विकल्प, उन स्थितियों में जहां किसी | विकल्प, उन स्थितियों में जहां किसी कार्य की आवश्यकता होती है, ये हैं: | ||
* उपयोग <code> | * उपयोग <code>फ़ंक्शन.प्रोटोटाइप()</code> अंतर्निहित कार्य, जो किसी भी तर्क को स्वीकार करता है और रिटर्न देता है <code>अपरिभाषित</code>;<ref>ECMAScript Language Specification – Edition 5.1 – [https://www.ecma-international.org/ecma-262/5.1/#sec-15.3.4 Properties of the Function Prototype Object]</ref> | ||
* तृतीय-पक्ष लाइब्रेरी में उपलब्ध एनओपी | * तृतीय-पक्ष लाइब्रेरी में उपलब्ध एनओपी कार्य का उपयोग करें—नीचे देखें; | ||
* एक कस्टम एनओपी | * एक कस्टम एनओपी कार्य को परिभाषित करें, जैसा कि निम्नलिखित उदाहरण में है ([[ES6|ईएस6]] एरो कार्य वाक्य - विन्यास का उपयोग करके): | ||
<syntaxhighlight lang="javascript">const noop = () => {};</syntaxhighlight> | <syntaxhighlight lang="javascript">const noop = () => {};</syntaxhighlight> | ||
==== एंगुलरजेएस ==== | ==== एंगुलरजेएस ==== | ||
[[AngularJS]] फ्रेमवर्क [https://docs.angularjs.org/api/ng/function/angular.noop | [[AngularJS|कोणीयजेएस]] फ्रेमवर्क [https://docs.angularjs.org/api/ng/function/angular.noop कोणीय.नहीं] कार्य प्रदान करता है जो कोई ऑपरेशन नहीं करता है। | ||
==== [[jQuery|जेक्वेरी]] ==== | |||
जेक्वेरी लाइब्रेरी एक कार्य प्रदान करती है <code>जेक्वेरी.नहीं()</code>, जो कुछ नहीं करता.<ref>[http://api.jquery.com/jquery.noop/ jQuery.noop()] from jQuery API documentation</ref> | |||
==== लोदाश ==== | ==== लोदाश ==== | ||
लॉडैश लाइब्रेरी एक | लॉडैश लाइब्रेरी एक कार्य प्रदान करती है <code>_.नहीं()</code>, जो अपरिभाषित लौटाता है और कुछ नहीं करता।<ref>{{Cite web|url=https://lodash.com/docs/#noop|title=लोदाश दस्तावेज़ीकरण|website=lodash.com|language=en|access-date=2017-12-15}}</ref> | ||
=== पास्कल === | === पास्कल === | ||
सी के साथ, ; स्वयं द्वारा प्रयुक्त को [[पास्कल (प्रोग्रामिंग भाषा)]] में एक अशक्त कथन के रूप में उपयोग किया जा सकता है। वास्तव में, भाषा की विशिष्टता के कारण, | सी के साथ, ; स्वयं द्वारा प्रयुक्त को [[पास्कल (प्रोग्रामिंग भाषा)]] में एक अशक्त कथन के रूप में उपयोग किया जा सकता है। वास्तव में, भाषा की विशिष्टता के कारण, आरंभ/समाप्ति ब्लॉक में, समाप्ति कथन से पहले अर्धविराम वैकल्पिक होता है, इस प्रकार वहां प्रयुक्त अर्धविराम अनावश्यक होता है। | ||
इसके अलावा, एक ब्लॉक जिसमें सम्मिलित है <code> | इसके अलावा, एक ब्लॉक जिसमें सम्मिलित है <code> आरंभ समाप्ति;</code> कोई कार्रवाई न होने का संकेत देने के लिए प्लेसहोल्डर के रूप में उपयोग किया जा सकता है, भले ही इसे किसी अन्य आरंभ/समाप्ति ब्लॉक के अंदर रखा गया हो। | ||
===पायथन === | ===पायथन === | ||
[[पायथन (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा में एक पायथन (प्रोग्रामिंग भाषा)#स्टेटमेंट्स और नियंत्रण प्रवाह| है<code> | [[पायथन (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा में एक पायथन (प्रोग्रामिंग भाषा)#स्टेटमेंट्स और नियंत्रण प्रवाह| है<code>उत्तीर्ण</code> ऐसा कथन जिसे निष्पादित करने पर कोई प्रभाव नहीं पड़ता है और इस प्रकार यह एनओपी के रूप में कार्य करता है। इसका उपयोग मुख्य रूप से पायथन के [[ऑफ-साइड नियम]] | इंडेंटेशन-सेंसिटिव वाक्य - विन्यास के कारण सही वाक्य - विन्यास सुनिश्चित करने के लिए किया जाता है; उदाहरण के लिए किसी [[ कक्षा (कंप्यूटर प्रोग्रामिंग) ]] की परिभाषा के लिए वाक्य - विन्यास के लिए श्रेणीतर्क के साथ एक इंडेंटेड ब्लॉक की आवश्यकता होती है, जिसे इस प्रकार व्यक्त किया जाना चाहिए <code>उत्तीर्ण</code> जब यह खाली होना चाहिए. | ||
=== शेल स्क्रिप्टिंग (बैश, | === शेल स्क्रिप्टिंग (बैश, ज़ेडएसएच, आदि) === | ||
'<code>:</code>' [कोलन] कमांड एक शेल बिल्टिन है जिसका एनओपी (कुछ न करने वाला ऑपरेशन) के समान प्रभाव होता है। यह तकनीकी रूप से एनओपी नहीं है, क्योंकि यह विशेष पैरामीटर $? को बदल देता है। (अंतिम कमांड की निकास स्थिति) से 0. इसे 'सही' में निर्मित शेल का पर्याय माना जा सकता है, और इसकी निकास स्थिति सत्य (0) है।<ref>[http://tldp.org/LDP/abs/html/special-chars.html Advanced Bash-Scripting Guide > Chapter 3. Special Characters]</ref><ref>bash manpage > SHELL BUILTIN COMMANDS</ref><ref>zsh manpage (zshbuiltins) > SHELL BUILTIN COMMANDS</ref> | '<code>:</code>' [कोलन] कमांड एक शेल बिल्टिन है जिसका एनओपी (कुछ न करने वाला ऑपरेशन) के समान प्रभाव होता है। यह तकनीकी रूप से एनओपी नहीं है, क्योंकि यह विशेष पैरामीटर $? को बदल देता है। (अंतिम कमांड की निकास स्थिति) से 0. इसे 'सही' में निर्मित शेल का पर्याय माना जा सकता है, और इसकी निकास स्थिति सत्य (0) है।<ref>[http://tldp.org/LDP/abs/html/special-chars.html Advanced Bash-Scripting Guide > Chapter 3. Special Characters]</ref><ref>bash manpage > SHELL BUILTIN COMMANDS</ref><ref>zsh manpage (zshbuiltins) > SHELL BUILTIN COMMANDS</ref> | ||
=== [[TeX|टेक्स]] मैक्रो भाषा (सीओएनमूलपाठ, लाटेकस, आदि) === | |||
=== [[TeX]] मैक्रो भाषा ( | टेक्स टाइपोग्राफ़िकल सिस्टम की मैक्रो भाषा में है <code>\विश्राम</code> आज्ञा।<ref>{{cite book |last1=Bausum |first1=David |title=TeX संदर्भ मैनुअल|date=2002 |publisher=Kluwer Academic Publishers |url=https://www.tug.org/utilities/plain/cseq.html#relax-rp |access-date=1 April 2020 |chapter=TeX Primitive Control Sequences |quote=According to The TeXbook, 'TeX does nothing' when it encounters <code>\relax</code>. Actually, <code>\relax</code> may tell TeX, 'This is the end of what you've been doing'.}}</ref> यह अपने आप में कुछ नहीं करता है, लेकिन इसका उपयोग तत्काल पूर्ववर्ती कमांड को किसी भी बाद के टोकन को पार्स करने से रोकने के लिए किया जा सकता है।<ref>TeX wikibook – [https://en.wikibooks.org/wiki/TeX/relax relax]</ref> | ||
== एनओपी प्रोटोकॉल कमांड == | == एनओपी प्रोटोकॉल कमांड == | ||
[[टेलनेट]] जैसे कई प्रोटोकॉल (कंप्यूटिंग) में एक एनओपी कमांड सम्मिलित होता है जिसे क्लाइंट किसी अन्य कार्रवाई का अनुरोध किए बिना सर्वर से प्रतिक्रिया का अनुरोध करने के लिए जारी कर सकता है। इस तरह के कमांड का उपयोग कीपलाइव या सर्वर रिस्पॉन्सिव होने के लिए किया जा सकता है। एक | [[टेलनेट]] जैसे कई प्रोटोकॉल (कंप्यूटिंग) में एक एनओपी कमांड सम्मिलित होता है जिसे क्लाइंट किसी अन्य कार्रवाई का अनुरोध किए बिना सर्वर से प्रतिक्रिया का अनुरोध करने के लिए जारी कर सकता है। इस तरह के कमांड का उपयोग कीपलाइव या सर्वर रिस्पॉन्सिव होने के लिए किया जा सकता है। एक नहीं कमांड निम्नलिखित प्रोटोकॉल का हिस्सा है (यह एक आंशिक सूची है): | ||
* टेलनेट | * टेलनेट | ||
* [[फाइल ट्रांसफर प्रोटोकॉल]] | * [[फाइल ट्रांसफर प्रोटोकॉल]] | ||
| Line 276: | Line 257: | ||
* [[बिटटोरेंट (प्रोटोकॉल)]] | * [[बिटटोरेंट (प्रोटोकॉल)]] | ||
ध्यान दें कि सूचीबद्ध अन्य प्रोटोकॉल के विपरीत, | ध्यान दें कि सूचीबद्ध अन्य प्रोटोकॉल के विपरीत, आईएमएपी4 नहीं कमांड का एक विशिष्ट उद्देश्य है - यह सर्वर को क्लाइंट को कोई भी लंबित अधिसूचना भेजने की अनुमति देता है। | ||
जबकि अधिकांश टेलनेट या [[एफ़टीपी]] सर्वर एनओओपी कमांड का जवाब ओके या +ओके के साथ देते हैं, कुछ प्रोग्रामर ने क्लाइंट के लिए विचित्र प्रतिक्रियाएं जोड़ दी हैं। उदाहरण के लिए, <code> | जबकि अधिकांश टेलनेट या [[एफ़टीपी]] सर्वर एनओओपी कमांड का जवाब ओके या +ओके के साथ देते हैं, कुछ प्रोग्रामर ने क्लाइंट के लिए विचित्र प्रतिक्रियाएं जोड़ दी हैं। उदाहरण के लिए, <code>एफटीपीडी</code> [[MINIX|एमआईएनआईएक्स]] का डेमॉन नहीं को संदेश के साथ प्रतिक्रिया देता है:<ref name="minix_ftpd">{{cite web|url=http://www.cise.ufl.edu/~cop4600/cgi-bin/lxr/http/source.cgi/commands/ftpd/ftpd.c#L139|title=ftpd.c|access-date=2016-06-19}}</ref> | ||
एफ़टीपी सर्वर रिटर्न कोड नहीं की सूची आपके लिए भी! | |||
== क्रैकिंग == | == क्रैकिंग == | ||
| Line 285: | Line 266: | ||
== सुरक्षा शोषण == | == सुरक्षा शोषण == | ||
एनओपी ऑपकोड का उपयोग एनओपी स्लाइड बनाने के लिए किया जा सकता है, जो निर्देश सूचक का सटीक मान अनिश्चित होने पर कोड को निष्पादित करने की अनुमति देता है (उदाहरण के लिए, जब बफर ओवरफ्लो के कारण स्टैक पर | एनओपी ऑपकोड का उपयोग एनओपी स्लाइड बनाने के लिए किया जा सकता है, जो निर्देश सूचक का सटीक मान अनिश्चित होने पर कोड को निष्पादित करने की अनुमति देता है (उदाहरण के लिए, जब बफर ओवरफ्लो के कारण स्टैक पर कार्य का रिटर्न पता ओवरराइट हो जाता है)। | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[कंप्यूटर आर्किटेक्चर|कंप्यूटर वास्तुकला]] | * [[कंप्यूटर आर्किटेक्चर|कंप्यूटर वास्तुकला]] | ||
* [[एचएलटी (x86 निर्देश)]] - सीपीयू को रोक देता है | * [[एचएलटी (x86 निर्देश)|एचएलटी (एक्स86 निर्देश)]] - सीपीयू को रोक देता है | ||
* हॉल्ट एंड कैच फायर (कंप्यूटिंग) - सीपीयू को भी रोक देता है | * हॉल्ट एंड कैच फायर (कंप्यूटिंग) - सीपीयू को भी रोक देता है | ||
* पहचान | * पहचान कार्य - एनओपी के समतुल्य कार्यात्मक प्रोग्रामिंग | ||
* [[xyzzy (कंप्यूटिंग)]] - एक कमांड जो कभी-कभी | * [[xyzzy (कंप्यूटिंग)|एक्सवायेजेडजेडवाये (कंप्यूटिंग)]] - एक कमांड जो कभी-कभी एनओपी के स्थान पर उपयोग किया जाता है | ||
* [[IEFBR14]] - मेनफ्रेम टॉटोलॉजी | * [[IEFBR14|आईईएफबीआर14]] - मेनफ्रेम टॉटोलॉजी | ||
* [[भराव पाठ]] | * [[भराव पाठ]] | ||
* [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] - | * [[टिप्पणी (कंप्यूटर प्रोग्रामिंग)]] - प्रायः प्रोग्रामर के लिए एनोटेशन जिन्हें संकलकों और दुभाषियों द्वारा अनदेखा किया जाता है | ||
== संदर्भ == | == संदर्भ == | ||
Revision as of 11:08, 17 July 2023
| Machine code |
|---|
| General concepts |
| Instructions |
कंप्यूटर विज्ञान में, एनओपी, नो-ऑप, या एनओओपी (उच्चारण नो ऑप; बिना ऑपरेशन का संक्षिप्त रूप) एक मशीन कोड निर्देश और इसकी असेंबली भाषा निमोनिक, प्रोग्रामिंग भाषा स्टेटमेंट, या प्रोटोकॉल (कंप्यूटिंग) कमांड है जो कुछ भी नहीं करता है।
मशीन भाषा निर्देश
कुछ कंप्यूटर अनुदेश सेटों में एक निर्देश सम्मिलित होता है जिसका स्पष्ट उद्देश्य प्रोग्रामर-सुलभ प्रोसेसर रजिस्टर, प्रक्रिया स्थिति या मुख्य मेमोरी में से किसी की स्थिति को बदलना नहीं है। इसे निष्पादित करने के लिए अक्सर घड़ी चक्रों की एक अच्छी तरह से परिभाषित संख्या की आवश्यकता होती है। अन्य निर्देश सेटों में, कोई स्पष्ट एनओपी निर्देश नहीं है, लेकिन असेंबली भाषा मेमोनिक एनओपी एक निर्देश का प्रतिनिधित्व करता है जो एनओपी के रूप में कार्य करता है; उदाहरण के लिए, एसपीएआरसी पर, सेठी 0, %जी0.
किसी एनओपी को मेमोरी तक नहीं पहुंचना चाहिए, क्योंकि इससे मेमोरी में खराबी या पेज में दुर्दशा हो सकती है।
एनओपी का उपयोग प्रायः समय निर्धारण उद्देश्यों के लिए किया जाता है, डेटा संरचना संरेखण को मजबूर करने के लिए, खतरे (कंप्यूटर वास्तुकला) को रोकने के लिए, एक शाखा विलंब स्लॉट पर कब्जा करने के लिए, एक प्रचलित निर्देश जैसे जंप को शून्य करने के लिए, एक निष्पादन निर्देश के लक्ष्य के रूप में , या प्रोग्राम विकास में बाद में सक्रिय निर्देशों द्वारा प्रतिस्थापित किए जाने वाले प्लेस-होल्डर के रूप में (या जब पुनर्संगठित करना समस्याग्रस्त या समय लेने वाला होगा तो हटाए गए निर्देशों को प्रतिस्थापित करना)। कुछ घटनाओं में, एनओपी के अप्रौढ दुष्प्रभाव हो सकते हैं; उदाहरण के लिए, मोटोरोला 68000 श्रृंखला के प्रोसेसर पर, एनओपी ऑपकोड पाइपलाइन (कंप्यूटिंग) के तादात्म्य का कारण बनता है।[1]
कुछ सीपीयू वास्तुकला के लिए एनओपी निर्देश नीचे सूचीबद्ध हैं:
| सीपीयू आर्किटेक्चर | अनुदेश स्मरणीय | बाइट्स | ऑपकोड | टिप्पणियाँ |
|---|---|---|---|---|
| इंटेलl एक्स86 सीपीयू परिवार | एनओपी
|
1; 1–9 for i686 and एक्स86-64 | 0एक्स90[2] | 0एक्स90 लंबे मोड को छोड़कर सभी मोड में एक्ससीhg eaएक्स, eaएक्स को डिकोड करता है, जहां opसीode 0एक्स90 का अभी भी कोई प्रभाव नहीं है। इंटेल के मैनुअल में लंबी एन्कोडिंग का वर्णन किया गया है। |
| इंटेलl 8051 / एमसीएस-51 परिवार | एनओपी
|
1 | 0एक्स00 | |
| एआरएम ए32 | एनओपी
|
4 | 0एक्स00000000 | यह andeq आर0, आर0, आर0 के लिए है। असेंबली निर्देश एनओपी संभवतः mov आर0, आर0 तक विस्तारित होगा जो 0एक्सE1A00000 (लिटिल-एंडियन आर्किटेक्चर) एन्कोड किया गया है। |
| एआरएम टी32 (16 बिट) | एनओपी
|
2 | 0एक्सb000 | एडीडी एसपी के लिए ऑपकोड, #0 - स्टैक पॉइंटर में शून्य जोड़ें (कोई ऑपरेशन नहीं)। असेंबली निर्देश एनओपी संभवतः mov आर8, आर8 तक विस्तारित होगा जो 0एक्स46सी0 एन्कोडेड है। |
| एआरएम टी32 (32 बिट) | एनओपी
|
4 | 0एक्सF3AF 8000 | |
| एआरएम ए64 (64 बिट) | एनओपी
|
4 | 0एक्सD503201F | |
| एवीआर | एनओपी
|
2 | 0एक्स0000 | एक घड़ी चक्र |
| आईबीएम सिस्टम/360, आईबीएम सिस्टम/370, आईबीएम सिस्टम/390, जेड/आर्किटेक्चर, यूनिवैक सीरीज 90 | एनओपी
|
4 | 0एक्स47000000 or 0एक्स470nnnnn or 0एक्स47n0nnnn where "n" is any 4-बिट value. | एनओपी ("नो-ऑप") और एनओपीआर ("नो-ऑप रजिस्टर") क्रमशः "ब्रांच ऑन कंडीशन" या "ब्रांच ऑन कंडीशन रजिस्टर" निर्देशों का एक उपसमूह हैं; दोनों संस्करणों में NO-OP उत्पन्न करने के लिए दो विकल्प हैं।
एनओपी और एनओपीआईआर दोनों निर्देशों के मामले में, दूसरे बाइट में पहला 0 "मास्क" मान है, परीक्षण करने की स्थिति जैसे कि बराबर, बराबर नहीं, उच्च, निम्न, आदि। यदि मास्क 0 है, तो कोई शाखा नहीं है घटित होना। एनओपीआईआर निर्देश के मामले में, दूसरे बाइट में दूसरा मान शाखा के लिए रजिस्टर है। यदि रजिस्टर 0 चुना जाता है, तो मास्क मूल्य की परवाह किए बिना कोई शाखा नहीं होती है। इस प्रकार, यदि दूसरे बाइट में दोनों में से कोई भी मान 0 है, तो शाखा नहीं होगी। एनओपी निर्देश के मामले में, दूसरे बाइट में दूसरा मान संयुक्त आधार रजिस्टर, विस्थापन रजिस्टर और ऑफसेट पते का "आधार" रजिस्टर है। यदि आधार रजिस्टर भी 0 है, तो विस्थापन रजिस्टर या विस्थापन पते के मूल्य की परवाह किए बिना शाखा नहीं ली जाती है। |
एनओपीR
|
2 | 0एक्स0700 or 0एक्स070n or 0एक्स07n0 where "n" is any 4-बिट value. | ||
| सुपर एच | एनओपी
|
2 | 0एक्स0009 | |
| एमआईपीएस | एनओपी
|
4 | 0एक्स00000000 | एसएलएल आर0,आर0,0 के लिए खड़ा है, जिसका अर्थ है: तार्किक रूप से रजिस्टर 0 शून्य बिट्स को बाईं ओर स्थानांतरित करें और परिणाम को रजिस्टर 0 में संग्रहीत करें। रजिस्टर 0 पर लिखने पर ध्यान नहीं दिया जाता है; इसमें हमेशा 0 होता है. |
| एमआईपीएस-एक्स | एनओपी
|
4 | 0एक्स60000019 | (आर0,आर0,आर0 जोड़ने के लिए विस्तारित ऑपकोड) |
| एमआईएक्स | एनओपी
|
1 शब्द | ± * * * * 0 | * बाइट्स मनमाने हैं, और 0 से अधिकतम बाइट तक कुछ भी हो सकते हैं (63-99 की सीमा में होना आवश्यक है)। दिव्यएक्स साइन-परिमाण प्रतिनिधित्व का उपयोग करता है। |
| एमएमआईएक्स | एसडब्ल्यूवाईएम
|
4 | 0एक्सFD****** | एसडब्ल्यूवाईएम का मतलब है "अपनी मशीनरी के प्रति सहानुभूति रखें"। * अंक मनमाने ढंग से चुने जा सकते हैं। |
| मोटोरोला 68000 परिवार | एनओपी
|
2 | 0एक्स4E71 | यह को सिंक्रनाइज़ करता है पाइपलाइन और निर्देश ओवरलैप को रोकता है।.[1] |
| मोटोरोला 6809 | एनओपी
|
1 | 0एक्स12 | |
| एमओएस टेक्नोलॉजी 65एक्सएक्स (उदा. 6502) | एनओपी
|
1 | 0एक्सEA | एनओपी दो घड़ी चक्रों का उपभोग करता है। अपरिभाषित ऑपकोड में एनएमओएस संस्करणों को 65एक्सएक्स परिवार were सीonverted to be एनओपी में अलग-अलग निर्देश लंबाई और चक्र समय के एनओपी में परिवर्तित किया गया था। 65सी02.
|
एनओपी
|
4 | 0एक्स60000000 | (eएक्सtसमाप्तिed opसीode for ori आर0,आर0,0)
| |
| पीआईसी माइक्रोकंट्रोलर | एनओपी
|
12 बिटs | 0b000000000000 | एमओवीडब्ल्यू 0,डब्ल्यू |
| आरआईएससी-वी | एनओपी
|
4 | 0एक्स00000013 | एडीडीआई एक्स0, एक्स0, 0 |
| एसपीएआरसी | एनओपी
|
4 | 0एक्स01000000 | सेठी 0, %जी0 के लिए खड़ा है जो हार्डवेयर्ड-टू-जीरो %जी0 रजिस्टर को शून्य करता है |
| जेड80 | एनओपी
|
1 | 0एक्स00 | बिना किसी प्रभाव के कुछ अन्य निर्देश हैं (और वही समय): एलडी ए, ए, एलडी बी, बी आदि। |
| पीडीपी-10 | जेएफसीएल 0, (पारंपरिक)
जम्प, सेटा, सेताई, सीएआई, टीआरएन, टीएलएन |
1 शब्द | 25500******* (अष्टभुजाकार) | कूदो कभी नहीं
कभी कूदो मत, कुछ भी सेट मत करो, कभी मत छोड़ो |
| पीडीपी-11 | एनओपी
|
16 बिट्स | 000240 (अष्टभुजाकार) | कोई भी शर्त कोड साफ़ न करें |
| वीएएक्स | एनओपी
|
1 | 0एक्स01 | विलंब प्रोसेसर प्रकार पर निर्भर है |
हार्डवेयर डिज़ाइन के दृष्टिकोण से, बस के अनमैप्ड क्षेत्रों को अक्सर शून्य लौटाने के लिए डिज़ाइन किया जाता है; चूंकि एनओपी स्लाइड व्यवहार अक्सर वांछनीय होता है, यह इसे ऑल-जीरोज़ ऑपकोड के साथ कोडिंग करने में पूर्वाग्रह देता है।
कोड
एक कार्य या प्रोग्रामिंग भाषा कथनों का अनुक्रम एक एनओपी या अशक्त कथन है यदि इसका कोई प्रभाव नहीं है। कुछ संदर्भों में कुछ भाषाओं की प्रोग्रामिंग भाषा वाक्य - विन्यास द्वारा शून्य कथनों की आवश्यकता हो सकती है।
अदा
एडा (प्रोग्रामिंग भाषा) में, null कथन एनओपी के रूप में कार्य करता है।[3] जैसा कि वाक्यविन्यास निषिद्ध करता है कि नियंत्रण कथन या कार्य खाली हों, null कथन का उपयोग यह निर्दिष्ट करने के लिए किया जाना चाहिए कि किसी कार्रवाई की आवश्यकता नहीं है। (इस प्रकार, यदि प्रोग्रामर कथनों का अनुक्रम लिखना भूल जाता है, तो प्रोग्राम संकलित करने में विफल हो जाएगा।)
सी और डेरिवेटिव
सी में सबसे सरल एनओपी स्टेटमेंट शून्य स्टेटमेंट है, जो एक स्टेटमेंट की आवश्यकता वाले संदर्भ में सिर्फ एक अर्ध-कोलन है।
;
एक खाली ब्लॉक (यौगिक विवरण) भी एक एनओपी है, और अधिक सुपाठ्य हो सकता है:
{}
कुछ घटना में, जैसे किसी कार्य का मुख्य भाग, एक ब्लॉक का उपयोग किया जाना चाहिए, लेकिन यह खाली हो सकता है। सी में, कथन खाली नहीं हो सकते - सरल कथन ए के साथ समाप्त होने चाहिए; (अर्धविराम) जबकि यौगिक कथन {} (ब्रेसिज़) में संलग्न होते हैं, जिन्हें स्वयं निम्नलिखित अर्धविराम की आवश्यकता नहीं होती है। इस प्रकार उन संदर्भों में जहां एक कथन व्याकरणिक रूप से आवश्यक है, ऐसे कुछ शून्य कथन का उपयोग किया जा सकता है।
शून्य कथन अपने आप में बेकार है, लेकिन व्यापक संदर्भ में इसका वाक्यात्मक उपयोग हो सकता है, उदाहरण के लिए, लूप के संदर्भ में:
while (getchar() != '\n') {}
वैकल्पिक रूप से,
while (getchar() != '\n')
;
या अधिक संक्षेप में:
while (getchar() != '\n');
(ध्यान दें कि अंतिम फॉर्म भ्रमित करने वाला हो सकता है, और इस तरह कुछ संकलकों या संकलक विकल्पों के साथ एक चेतावनी उत्पन्न होती है, क्योंकि पंक्ति के अंत में कोष्ठक के बाद रखे जाने पर अर्धविराम प्रायः कार्य कॉल निर्देश के अंत को इंगित करता है)।
उपरोक्त कोड कार्य गेटसीहर() को तब तक कॉल करना जारी रखता है जब तक कि यह एक \n (न्यूलाइन) वर्ण नहीं लौटाता है, अनिवार्य रूप से मानक इनपुट के वर्तमान रीडिंग स्थान को अगली पंक्ति की प्रारम्भ में तेजी से अग्रेषित करता है।
फोरट्रान
फोरट्रान में, चालू रखना स्टेटमेंट का उपयोग कुछ संदर्भों में किया जाता है जैसे कि डीओ लूप में अंतिम स्टेटमेंट, यदपि इसका उपयोग कहीं भी किया जा सकता है, और इसमें कोई कार्यक्षमता नहीं होती है।
जावास्क्रिप्ट
जावास्क्रिप्ट भाषा में कोई अंतर्निहित एनओपी कथन नहीं है। कई कार्यान्वयन संभव हैं:
- उपयोग
;खाली बयान[4] या{}एनओपी (कोड)#सी_एंड_डेरिवेटिव्स उदाहरणों की तरह ही खाली ब्लॉक स्टेटमेंट; - उपयोग
अपरिभाषितयाnullअभिव्यक्ति को एक पूर्ण कथन के रूप में (एक अभिव्यक्ति कथन) जब पिछली विधियों को वाक्य - विन्यास द्वारा अनुमति नहीं दी जाती है।
विकल्प, उन स्थितियों में जहां किसी कार्य की आवश्यकता होती है, ये हैं:
- उपयोग
फ़ंक्शन.प्रोटोटाइप()अंतर्निहित कार्य, जो किसी भी तर्क को स्वीकार करता है और रिटर्न देता हैअपरिभाषित;[5] - तृतीय-पक्ष लाइब्रेरी में उपलब्ध एनओपी कार्य का उपयोग करें—नीचे देखें;
- एक कस्टम एनओपी कार्य को परिभाषित करें, जैसा कि निम्नलिखित उदाहरण में है (ईएस6 एरो कार्य वाक्य - विन्यास का उपयोग करके):
const noop = () => {};
एंगुलरजेएस
कोणीयजेएस फ्रेमवर्क कोणीय.नहीं कार्य प्रदान करता है जो कोई ऑपरेशन नहीं करता है।
जेक्वेरी
जेक्वेरी लाइब्रेरी एक कार्य प्रदान करती है जेक्वेरी.नहीं(), जो कुछ नहीं करता.[6]
लोदाश
लॉडैश लाइब्रेरी एक कार्य प्रदान करती है _.नहीं(), जो अपरिभाषित लौटाता है और कुछ नहीं करता।[7]
पास्कल
सी के साथ, ; स्वयं द्वारा प्रयुक्त को पास्कल (प्रोग्रामिंग भाषा) में एक अशक्त कथन के रूप में उपयोग किया जा सकता है। वास्तव में, भाषा की विशिष्टता के कारण, आरंभ/समाप्ति ब्लॉक में, समाप्ति कथन से पहले अर्धविराम वैकल्पिक होता है, इस प्रकार वहां प्रयुक्त अर्धविराम अनावश्यक होता है।
इसके अलावा, एक ब्लॉक जिसमें सम्मिलित है आरंभ समाप्ति; कोई कार्रवाई न होने का संकेत देने के लिए प्लेसहोल्डर के रूप में उपयोग किया जा सकता है, भले ही इसे किसी अन्य आरंभ/समाप्ति ब्लॉक के अंदर रखा गया हो।
पायथन
पायथन (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा में एक पायथन (प्रोग्रामिंग भाषा)#स्टेटमेंट्स और नियंत्रण प्रवाह| हैउत्तीर्ण ऐसा कथन जिसे निष्पादित करने पर कोई प्रभाव नहीं पड़ता है और इस प्रकार यह एनओपी के रूप में कार्य करता है। इसका उपयोग मुख्य रूप से पायथन के ऑफ-साइड नियम | इंडेंटेशन-सेंसिटिव वाक्य - विन्यास के कारण सही वाक्य - विन्यास सुनिश्चित करने के लिए किया जाता है; उदाहरण के लिए किसी कक्षा (कंप्यूटर प्रोग्रामिंग) की परिभाषा के लिए वाक्य - विन्यास के लिए श्रेणीतर्क के साथ एक इंडेंटेड ब्लॉक की आवश्यकता होती है, जिसे इस प्रकार व्यक्त किया जाना चाहिए उत्तीर्ण जब यह खाली होना चाहिए.
शेल स्क्रिप्टिंग (बैश, ज़ेडएसएच, आदि)
':' [कोलन] कमांड एक शेल बिल्टिन है जिसका एनओपी (कुछ न करने वाला ऑपरेशन) के समान प्रभाव होता है। यह तकनीकी रूप से एनओपी नहीं है, क्योंकि यह विशेष पैरामीटर $? को बदल देता है। (अंतिम कमांड की निकास स्थिति) से 0. इसे 'सही' में निर्मित शेल का पर्याय माना जा सकता है, और इसकी निकास स्थिति सत्य (0) है।[8][9][10]
टेक्स मैक्रो भाषा (सीओएनमूलपाठ, लाटेकस, आदि)
टेक्स टाइपोग्राफ़िकल सिस्टम की मैक्रो भाषा में है \विश्राम आज्ञा।[11] यह अपने आप में कुछ नहीं करता है, लेकिन इसका उपयोग तत्काल पूर्ववर्ती कमांड को किसी भी बाद के टोकन को पार्स करने से रोकने के लिए किया जा सकता है।[12]
एनओपी प्रोटोकॉल कमांड
टेलनेट जैसे कई प्रोटोकॉल (कंप्यूटिंग) में एक एनओपी कमांड सम्मिलित होता है जिसे क्लाइंट किसी अन्य कार्रवाई का अनुरोध किए बिना सर्वर से प्रतिक्रिया का अनुरोध करने के लिए जारी कर सकता है। इस तरह के कमांड का उपयोग कीपलाइव या सर्वर रिस्पॉन्सिव होने के लिए किया जा सकता है। एक नहीं कमांड निम्नलिखित प्रोटोकॉल का हिस्सा है (यह एक आंशिक सूची है):
- टेलनेट
- फाइल ट्रांसफर प्रोटोकॉल
- सरल डाक स्थानांतरण प्रोटोकॉल
- एक्स विंडो कोर प्रोटोकॉल
- डाकघर प्रोटोकॉल
- नेटवर्क समाचार स्थानांतरण प्रोटोकॉल
- फिंगर प्रोटोकॉल
- इंटरनेट संदेश एक्सेस प्रोटोकॉल
- बिटटोरेंट (प्रोटोकॉल)
ध्यान दें कि सूचीबद्ध अन्य प्रोटोकॉल के विपरीत, आईएमएपी4 नहीं कमांड का एक विशिष्ट उद्देश्य है - यह सर्वर को क्लाइंट को कोई भी लंबित अधिसूचना भेजने की अनुमति देता है।
जबकि अधिकांश टेलनेट या एफ़टीपी सर्वर एनओओपी कमांड का जवाब ओके या +ओके के साथ देते हैं, कुछ प्रोग्रामर ने क्लाइंट के लिए विचित्र प्रतिक्रियाएं जोड़ दी हैं। उदाहरण के लिए, एफटीपीडी एमआईएनआईएक्स का डेमॉन नहीं को संदेश के साथ प्रतिक्रिया देता है:[13]
एफ़टीपी सर्वर रिटर्न कोड नहीं की सूची आपके लिए भी!
क्रैकिंग
एनओपी अक्सर तब सम्मिलित होते हैं जब सॉफ्टवेयर क्रैकिंग सॉफ़्टवेयर होता है जो सीरियल नंबर, विशिष्ट हार्डवेयर या सॉफ़्टवेयर आवश्यकताओं, हार्डवेयर डोंगल की उपस्थिति या अनुपस्थिति आदि की जांच करता है।[citation needed] यह प्रक्रिया सुरक्षा जांच को बायपास करने के लिए सबरूटीन को बदलकर पूरी की जाती है और इसके बजाय केवल अपेक्षित मूल्य लौटाया जाता है जिसके लिए जाँच की जा रही है। क्योंकि सुरक्षा जांच रूटीन में अधिकांश निर्देश अप्रयुक्त होंगे, इन्हें एनओपी से बदल दिया जाएगा, इस प्रकार बाइनरी में आने वाली हर चीज की स्थिति में बदलाव किए बिना सॉफ्टवेयर की सुरक्षा कार्यक्षमता को हटा दिया जाएगा।
सुरक्षा शोषण
एनओपी ऑपकोड का उपयोग एनओपी स्लाइड बनाने के लिए किया जा सकता है, जो निर्देश सूचक का सटीक मान अनिश्चित होने पर कोड को निष्पादित करने की अनुमति देता है (उदाहरण के लिए, जब बफर ओवरफ्लो के कारण स्टैक पर कार्य का रिटर्न पता ओवरराइट हो जाता है)।
यह भी देखें
- कंप्यूटर वास्तुकला
- एचएलटी (एक्स86 निर्देश) - सीपीयू को रोक देता है
- हॉल्ट एंड कैच फायर (कंप्यूटिंग) - सीपीयू को भी रोक देता है
- पहचान कार्य - एनओपी के समतुल्य कार्यात्मक प्रोग्रामिंग
- एक्सवायेजेडजेडवाये (कंप्यूटिंग) - एक कमांड जो कभी-कभी एनओपी के स्थान पर उपयोग किया जाता है
- आईईएफबीआर14 - मेनफ्रेम टॉटोलॉजी
- भराव पाठ
- टिप्पणी (कंप्यूटर प्रोग्रामिंग) - प्रायः प्रोग्रामर के लिए एनोटेशन जिन्हें संकलकों और दुभाषियों द्वारा अनदेखा किया जाता है
संदर्भ
- ↑ 1.0 1.1 "Motorola 68000 Programmer's Reference Manual" (PDF).
- ↑ "Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference A-Z" (PDF). Retrieved 2012-03-01.
- ↑ Ada Reference Manual — null statements. "The execution of a null_statement has no effect."
- ↑ MDN JavaScript reference – empty statement. "The empty statement is a semicolon (
;) indicating that no statement will be executed, even if JavaScript syntax requires one." - ↑ ECMAScript Language Specification – Edition 5.1 – Properties of the Function Prototype Object
- ↑ jQuery.noop() from jQuery API documentation
- ↑ "लोदाश दस्तावेज़ीकरण". lodash.com (in English). Retrieved 2017-12-15.
- ↑ Advanced Bash-Scripting Guide > Chapter 3. Special Characters
- ↑ bash manpage > SHELL BUILTIN COMMANDS
- ↑ zsh manpage (zshbuiltins) > SHELL BUILTIN COMMANDS
- ↑ Bausum, David (2002). "TeX Primitive Control Sequences". TeX संदर्भ मैनुअल. Kluwer Academic Publishers. Retrieved 1 April 2020.
According to The TeXbook, 'TeX does nothing' when it encounters
\relax. Actually,\relaxmay tell TeX, 'This is the end of what you've been doing'. - ↑ TeX wikibook – relax
- ↑ "ftpd.c". Retrieved 2016-06-19.