ऑपरेटर (कंप्यूटर प्रोग्रामिंग): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 54: Line 54:
== संचालक अतिभारक ==
== संचालक अतिभारक ==
{{main|Operator overloading}}
{{main|Operator overloading}}
कुछ प्रोग्रामिंग भाषाओं में एक ऑपरेटर तदर्थ बहुरूपी हो सकता है, अर्थात्, एक से अधिक प्रकार के डेटा के लिए परिभाषाएँ होती हैं, (जैसे कि [[जावा (प्रोग्रामिंग भाषा)]] में जहाँ {{mono|+}} ऑपरेटर का उपयोग संख्याओं को जोड़ने और स्ट्रिंग्स के संयोजन के लिए दोनों के लिए किया जाता है)। ऐसे ऑपरेटर को ओवरलोडेड कहा जाता है। उन भाषाओं में जो प्रोग्रामर (जैसे [[सी ++]]) द्वारा ऑपरेटर ओवरलोडिंग का समर्थन करते हैं लेकिन ऑपरेटरों का एक सीमित सेट है, ऑपरेटर ओवरलोडिंग अक्सर ऑपरेटरों के लिए अनुकूलित उपयोगों को परिभाषित करने के लिए उपयोग किया जाता है।
कुछ क्रमदेशन भाषाओं में एक ऑपरेटर तदर्थ बहुरूपी हो सकता है, अर्थात्, एक से अधिक प्रकार के तथ्य के लिए परिभाषाएँ होती हैं, (जैसे कि [[जावा (प्रोग्रामिंग भाषा)]] में जहाँ {{mono|+}} ऑपरेटर का उपयोग संख्याओं को जोड़ने और डोरी (स्ट्रिंग्स) के संयोजन के लिए किया जाता है)। ऐसे ऑपरेटर को अतिभारित कहा जाता है। उन भाषाओं में जो क्रमदेशन (जैसे [[सी ++|C ++]]) द्वारा ऑपरेटर अतिभारित का समर्थन करते हैं लेकिन ऑपरेटरों का एक सीमित समूह है, ऑपरेटर अतिभारित अक्सर ऑपरेटरों के लिए अनुकूलित उपयोगों को परिभाषित करने के लिए उपयोग किया जाता है।


उदाहरण में <code>IF ORDER_DATE > "12/31/2011" AND ORDER_DATE < "01/01/2013" THEN CONTINUE ELSE STOP</code>, ऑपरेटर हैं: > (इससे बड़ा), AND और < (इससे कम)।
उदाहरण में <code>IF ORDER_DATE > "12/31/2011" AND ORDER_DATE < "01/01/2013" THEN CONTINUE ELSE STOP</code>, ऑपरेटर हैं: ">" (इससे बड़ा), AND और "<" (इससे कम)।


== संचालन जबरदस्ती ==
== संचालन जबरदस्ती ==
{{further|Type conversion}}
{{further|Type conversion}}
कुछ भाषाएं किसी ऑपरेटर के संकार्य को पूरी तरह से परिवर्तित करने की अनुमति देती हैं, या ऑपरेशन होने के लिए उपयुक्त डेटा प्रकारों के लिए रूपांतरण # अंतर्निहित प्रकार रूपांतरण टाइप करें। उदाहरण के लिए, पर्ल में ज़बरदस्ती के नियम आगे बढ़ते हैं <code>12 + "3.14"</code> का परिणाम उत्पन्न कर रहा है <code>15.14</code>. टेक्स्ट <code>"3.14"</code> जोड़ने से पहले संख्या 3.14 में परिवर्तित हो जाती है। आगे, <code>12</code> एक पूर्णांक है और <code>3.14</code> या तो एक फ़्लोटिंग या फिक्स्ड-पॉइंट नंबर है (एक संख्या जिसमें दशमलव स्थान है) इसलिए पूर्णांक क्रमशः फ़्लोटिंग पॉइंट या फिक्स्ड-पॉइंट नंबर में परिवर्तित हो जाता है।
कुछ भाषाएं किसी ऑपरेटर के संकार्य को ऑपरेशन होने के लिए उपयुक्त तथ्य प्रकारों में अंतर्निहित रूप से परिवर्तित करने, या मजबूर करने की अनुमति भी देती हैं। उदाहरण के लिए, पर्ल में ज़बरदस्ती के नियमों में <code>15.14 के परिणाम का उत्पादन करने वाले</code><code>12 + "3.14"</code> का नेतृत्व होता है। जोड़ने से पहले टेक्स्ट "3.14" को संख्या 3.14 में बदल दिया जाता है। इसके अलावा, <code>12</code> एक पूर्णांक है और <code>3.14</code> या तो एक फ़्लोटिंग या फिक्स्ड-पॉइंट नंबर है (एक संख्या जिसमें दशमलव स्थान है) इसलिए पूर्णांक क्रमशः विचल अंक (फ़्लोटिंग पॉइंट) या स्थायी (फिक्स्ड)-अंक संख्या में परिवर्तित कर दिया जाता है।


[[जावास्क्रिप्ट]] विपरीत नियमों का पालन करता है - ऊपर समान अभिव्यक्ति खोजने पर, यह पूर्णांक को रूपांतरित कर देगा <code>12</code> एक तार में <code>"12"</code>, फिर बनाने के लिए दो संकार्य को जोड़ें <code>"123.14"</code>.
[[जावास्क्रिप्ट]] विपरीत नियमों का पालन करती है - उपर्युक्त समान व्यंजक खोजने पर, यह पूर्णांक <code>12</code> को एक तार में <code>"12" में बदल देगी,</code>फिर दो संकार्य को <code>"123.14" बनाने के लिए जोड़ देगी ।</code>


किसी भाषा में ज़बरदस्ती की उपस्थिति में, सूक्ष्म प्रोग्रामिंग गलतियों से बचने के लिए प्रोग्रामर को संकार्य प्रकार और ऑपरेशन परिणाम प्रकार के बारे में विशिष्ट नियमों के बारे में पता होना चाहिए।
किसी भाषा में ज़बरदस्ती की उपस्थिति में, सूक्ष्म क्रमदेशन  गलतियों से बचने के लिए क्रमदेशन को संकार्य प्रकार और ऑपरेशन परिणाम प्रकार के बारे में विशिष्ट नियमों के बारे में पता होना चाहिए।


== प्रोग्रामिंग भाषाओं में ऑपरेटर सुविधाएँ ==
== प्रोग्रामिंग भाषाओं में ऑपरेटर सुविधाएँ ==

Revision as of 01:15, 13 December 2022

कंप्यूटर प्रोग्रामिंग में, ऑपरेटर प्रोग्रामिंग भाषाओं के भीतर परिभाषित निर्माण होते हैं जो आम तौर पर कार्यों की तरह व्यवहार करते हैं, लेकिन जो वाक्य-विन्यास (सिंटैक्स) या शब्दार्थ (सिमेंटिक्स) से भिन्न होते हैं।

सामान्य सरल उदाहरणों में अंकगणित (उदाहरण के साथ जोड़), तुलना (उदाहरण के लिए "से बड़ा" > के साथ), और तार्किक संचालन (जैसे AND, कुछ भाषाओं में && भी लिखा गया) शामिल हैं। अधिक शामिल उदाहरणों में प्रदत्त कार्य (आमतौर पर = या :=), अभिलेख या उद्देश्य में क्षेत्र अभिगम (आमतौर पर .), और विस्तार समाधान ऑपरेटर (अक्सर :: या .) शामिल हैं। भाषाएं आमतौर पर अंतर्निहित ऑपरेटरों के एक समूह को परिभाषित करती हैं, और कुछ मामलों में उपयोगकर्ताओं को मौजूदा ऑपरेटरों के लिए नए अर्थ जोड़ने या पूरी तरह से नए ऑपरेटरों को परिभाषित करने की अनुमति देती हैं।

रचनाक्रम

वाक्य-विन्यास रूप से ऑपरेटर आमतौर पर कार्यों के विपरीत होते हैं। अधिकांश भाषाओं में, कार्यों को संचालन स्तर और संबद्धता के निश्चित क्रम के साथ उपसर्ग ऑपरेटर के एक विशेष रूप के रूप में देखा जा सकता है, अक्सर अनिवार्य कोष्ठकों के साथ उदा। Func(a) (या (Func a) लिस्प में (प्रोग्रामिंग भाषा))। अधिकांश भाषाएँ क्रमादेशक (प्रोग्रामर)-परिभाषित कार्यों का समर्थन करती हैं, लेकिन वास्तव में क्रमादेशक-परिभाषित ऑपरेटरों का समर्थन करने का दावा नहीं कर सकती हैं, जब तक कि उनके पास उपसर्ग संकेतन से अधिक और एक से अधिक पूर्ववर्ती स्तर न हों। शब्दार्थतः रूप से ऑपरेटरों को अलग-अलग उद्यम संकेतन और सीमित संख्या में प्राचल (पैरामीटर) (आमतौर पर 1 या 2) के साथ कार्य के विशेष रूप के रूप में देखा जा सकता है।

इसके संकार्य (संकार्य) के संबंध में ऑपरेटर की स्थिति उपसर्ग, इंफिक्स या पोस्टफिक्स हो सकती है, और एक ऑपरेटर को शामिल करने वाली अभिव्यक्ति (कंप्यूटर साइंस) का रचनाक्रम इसकी एरिटी (संचालन की संख्या), पूर्वता, और (यदि लागू हो), सहयोगीता पर निर्भर करता है ।अधिकांश प्रोग्रामिंग भाषाएं बाइनरी ऑपरेटरों और कुछ एकात्मक ऑपरेटरों का समर्थन करती हैं, कुछ अधिक संकार्य का समर्थन करती हैं, कुछ अधिक संकार्य का समर्थन करती हैं, जैसे ?: C में ऑपरेटर, जो त्रिगुट है। उपसर्ग एकाधारी (यूनरी) ऑपरेटर हैं, जैसे एकाधारी ऋण -x, और पोस्टफ़िक्स एकाधारी ऑपरेटर्स, जैसे बाद वेतन वृद्धि x++; और बाइनरी संचालन इंफिक्स हैं, जैसे x + y या x = y. उच्च एरिटी के इन्फिक्स संचालन के लिए अतिरिक्त प्रतीकों की आवश्यकता होती है, जैसे त्रिगुट ऑपरेटर ?: C में, एक के रूप में लिखा जाता है a? b: c - वास्तव में, चूंकि यह एकमात्र सामान्य उदाहरण है, इसे अक्सर त्रिगुटरी ऑपरेटर के रूप में जाना जाता है। हालाँकि, उपसर्ग और पोस्टफ़िक्स संचालन किसी भी वांछित धर्मार्थ का समर्थन कर सकते हैं, जैसे कि 1 2 3 4 +.

कभी-कभी[1][2] किसी भाषा के कुछ हिस्सों को "मैचफिक्स" या "सिकमफिक्स" ऑपरेटरों के रूप में वर्णित किया जा सकता है,[3][4] या तो भाषा के विवरण या कार्यान्वयन को सरल बनाने के लिए। एक सिकमफ़िक्स ऑपरेटर में दो या दो से अधिक भाग होते हैं जो इसके संकार्य को घेरते हैं। सर्कमफ़िक्स ऑपरेटरों की सर्वोच्च प्राथमिकता होती है, उनकी सामग्री का मूल्यांकन किया जाता है और परिणामी मूल्य आसपास की अभिव्यक्ति में उपयोग किया जाता है। सबसे परिचित सर्कमफ़िक्स ऑपरेटर ऊपर उल्लिखित कोष्ठक हैं, जो यह इंगित करने के लिए उपयोग किया जाता है कि किसी अभिव्यक्ति के किन हिस्सों का मूल्यांकन दूसरों से पहले किया जाना है। भौतिकी से एक अन्य उदाहरण डीरेक के ब्रा-केट संकेतन का आंतरिक उत्पाद अंकन है। सर्कमफ़िक्स ऑपरेटर विशेष रूप से उन संचालन को निरूपित करने के लिए उपयोगी होते हैं जिनमें कई या अलग-अलग संख्या में संकार्य शामिल होते हैं।

एक भाषा का विनिर्देश उस रचनाक्रम को निर्दिष्ट करेगा जो ऑपरेटरों का समर्थन करता है, जबकि प्रोग्रामिंग-परिभाषित ऑपरेटरों का समर्थन करने वाली प्रस्तावना जैसी भाषाएं प्रोग्रामर द्वारा रचनाक्रम को परिभाषित करने की आवश्यकता होती हैं।

शब्दार्थ

ऑपरेटरों का शब्दार्थ विशेष रूप से मूल्य, मूल्यांकन रणनीति और तर्क अस्थायी प्रणाली (जैसे बूलियन शॉर्ट सर्किटिंग) पर निर्भर करता है। बस, एक ऑपरेटर से जुड़ी एक अभिव्यक्ति का मूल्यांकन किसी तरह से किया जाता है, और परिणामी मूल्य (कंप्यूटर विज्ञान) केवल एक मूल्य (एक r-परिमाण) हो सकता है, या समनुदेशन (एक l- परिमाण) की अनुमति देने वाली वस्तु हो सकती है ।

साधारण मामलों में यह सामान्य कार्य आवाहन के समान होता है; उदाहरण के लिए, अतिरिक्त x + y आम तौर पर कार्य आवाहन add(x, y) और तुलना x < y प्रति lt(x, y) के बराबर होता है, जिसका अर्थ है कि तर्कों का मूल्यांकन उनके सामान्य तरीके से किया जाता है, फिर कुछ कार्य का मूल्यांकन किया जाता है और परिणाम मान के रूप में लौटाया जाता है। हालाँकि, शब्दार्थ काफी भिन्न हो सकते हैं। उदाहरण के लिए, समनुदेशन में a = b लक्ष्य a का मूल्यांकन नहीं किया जाता है, बल्कि इसके स्थान (पता) का उपयोग b मूल्य को संग्रहीत करने के लिए किया जाता है - कॉल-टू-संदर्भ द्वारा शब्दार्थ के अनुरूप। इसके अलावा, एक समनुदेशन एक बयान (कोई मूल्य नहीं) हो सकता है, या एक अभिव्यक्ति (मान) हो सकता है, मूल्य के साथ या तो एक r - मूल्य (सिर्फ एक मूल्य) या एक l - मूल्य (जिसे निर्दिष्ट किया जा सकता है)। एक अन्य उदाहरण के रूप में, कार्यक्षेत्र विश्लेषण ऑपरेटर :: और तत्व अभिगम ऑपरेटर। (जैसे की Foo::Bar या a.b) मूल्यों पर नहीं, बल्कि नामों पर काम करता हैं, अनिवार्य रूप से कॉल-बाय-नाम शब्दार्थ, और उनका मूल्य एक नाम है।

ऑपरेटर संकार्य के रूप में l - मूल्य का उपयोग विशेष रूप से एकाधारी वृद्धि और कमी ऑपरेटरों में उल्लेखनीय है। C में, उदाहरण के लिए, निम्नलिखित बयान कानूनी और अच्छी तरह से परिभाषित है, और इस तथ्य पर निर्भर करता है कि सरणी अनुक्रमण एक l - मूल्य देता है:

x = ++a[ i ];

एक महत्वपूर्ण उपयोग तब होता है जब एक बाएं-सहयोगी बाइनरी ऑपरेटर अपने बाएं तर्क को संशोधित करता है (या एक साइड इफेक्ट पैदा करता है) और फिर उस तर्क को l - मूल्य के रूप में मूल्यांकन करता है।[lower-alpha 1] यह ऑपरेटरों के अनुक्रम को मूल तर्क को प्रभावित करने की अनुमति देता है, विधि सोपानन (कैस्केडिंग) के समान धाराप्रवाह अंतराफलक (इंटरफ़ेस) की अनुमति देते हैं। एक सामान्य उदाहरण है << C++ में ऑपरेटर iostreamपुस्तकालय, जो धाराप्रवाह उत्पादन की अनुमति देता है, निम्नानुसार है:

cout << "Hello" << " " << "world!" << endl;

उपयोगकर्ता परिभाषित ऑपरेटरों

एक भाषा में निश्चित संख्या में अन्तर्निहित (बिल्ट-इन) ऑपरेटरों हो सकते है (उदा। +, -, *, <, <=, !, =, आदि C और C++, PHP में ऑपरेटरों में), या यह क्रमादेशक-परिभाषित ऑपरेटरों के निर्माण की अनुमति दे सकता है (उदाहरण के लिए प्रस्तावना (प्रोलॉग),[5] सीड 7,[6] F #, OCaml, Haskell)। कुछ क्रमादेशक भाषायें ऑपरेटर संकेताक्षर को विशेष विशेष्ता जैसे प्रतिबंधित करती हैं + या := तक सीमित करती हैं जबकि अन्य div (जैसे पास्कल (प्रोग्रामिंग भाषा)) जैसे नामों की भी अनुमति देती हैं।।

अधिकांश भाषाओं में ऑपरेटरों का एक अंतर्निहित समूह होता है, लेकिन उपयोगकर्ता परिभाषित ऑपरेटरों को अनुमति नहीं देते, क्योंकि यह पदव्याख्या (पार्सिंग) को काफी जटिल करता है।[lower-alpha 2] कई भाषाएँ केवल ऑपरेटरों को अन्तर्निहित प्रकारों के लिए उपयोग करने की अनुमति देती हैं, लेकिन अन्य मौजूदा ऑपरेटरों को उपयोगकर्ता-परिभाषित प्रकारों के लिए उपयोग किया जाता है; इसे ऑपरेटर अधिक भार के रूप में जाना जाता है। कुछ भाषाएँ नए ऑपरेटरों को परिभाषित करने की अनुमति देती हैं, हालाँकि, या तो संकलन समय पर या कार्यावधि पर। इसमें मेटा-क्रमादेशक (एक अलग भाषा में ऑपरेटरों को निर्दिष्ट करना) या भाषा के भीतर ही शामिल हो सकता है। नए ऑपरेटरों की परिभाषा, विशेष रूप से कार्यावधि परिभाषा, अक्सर कार्यक्रमों के सही स्थैतिक विश्लेषण को असंभव बना देती है, क्योंकि भाषा का रचनाक्रम ट्यूरिंग-पूर्ण हो सकता है, इसलिए रचनाक्रम तरू (ट्री) के निर्माण के लिए भी विरामतः (हॉल्टिंग) समस्या को हल करने की आवश्यकता हो सकती है, जो असंभव है। यह पर्ल के लिए होता है, उदाहरण के लिए, और लिस्प (प्रोग्रामिंग भाषा) की कुछ बोलियाँ।

उदाहरण

सामान्य उदाहरण जो वाक्यात्मक रूप से भिन्न होते हैं, गणितीय अंकगणितीय संक्रियाएँ हैं, उदा। ">" "से अधिक" के लिए, अक्सर कार्यों के लिए पहचानकर्ता (कंप्यूटर विज्ञान) के भाषा के समूह के बाहर के नामों के साथ, और कार्य को आवाहन करने के लिए भाषा के रचनाक्रम से भिन्न रचनाक्रम के साथ बुलाया जाता है। एक समारोह के रूप में, "से अधिक" आम तौर पर एक पहचानकर्ता द्वारा नामित किया जाएगा, जैसे कि gt या greater_than और gt(x, y) के रूप में एक कार्य के रूप में कहा जाता है। इसके बजाय, संचालन विशेष वर्ण का उपयोग करता है > (जो व्याख्यात्मक विश्लेषण के दौरान अलग से चिन्हित किया गया है), और इंफिक्स नोटेशन, जैसा x > y के रूप में।

सामान्य उदाहरण जो शब्दार्थ से भिन्न होते हैं (तर्क पासिंग मोड द्वारा) बूलियन संचालन होते हैं, जो अक्सर शॉर्ट सर्किट मूल्यांकन की सुविधा देते हैं: उदा। एक शॉर्ट-सर्किटिंग कंजंक्शन (X AND Y) जो केवल बाद के तर्कों का मूल्यांकन करता है यदि पहले वाले गलत नहीं हैं, सख्त आवाहन-से-मूल्य कार्य वाली भाषा में। इसके बजाय यह if/then/else के समान व्यवहार करता है।

कम आम ऑपरेटरों में शामिल हैं:


संकलन

एक संकलनकर्ता (कंपाइलर) ऑपरेटरों और कार्यों को उपनित्यक्रम (सबरूटीन) या समरेखीय (इनलाइन) संहिता के साथ कार्यान्वित कर सकता है। भाषा द्वारा समर्थित कुछ अन्तर्निहित ऑपरेटरों के पास आमतौर पर केंद्रीय प्रसंस्करण इकाइयों पर पाए जाने वाले निर्देशों की एक छोटी संख्या के लिए प्रत्यक्ष मानचित्रण होता है, हालांकि अन्य (जैसे '+' लड़ी संघनन को व्यक्त करने के लिए उपयोग किया जाता है) में जटिल कार्यान्वयन हो सकते हैं।

संचालक अतिभारक

कुछ क्रमदेशन भाषाओं में एक ऑपरेटर तदर्थ बहुरूपी हो सकता है, अर्थात्, एक से अधिक प्रकार के तथ्य के लिए परिभाषाएँ होती हैं, (जैसे कि जावा (प्रोग्रामिंग भाषा) में जहाँ + ऑपरेटर का उपयोग संख्याओं को जोड़ने और डोरी (स्ट्रिंग्स) के संयोजन के लिए किया जाता है)। ऐसे ऑपरेटर को अतिभारित कहा जाता है। उन भाषाओं में जो क्रमदेशन (जैसे C ++) द्वारा ऑपरेटर अतिभारित का समर्थन करते हैं लेकिन ऑपरेटरों का एक सीमित समूह है, ऑपरेटर अतिभारित अक्सर ऑपरेटरों के लिए अनुकूलित उपयोगों को परिभाषित करने के लिए उपयोग किया जाता है।

उदाहरण में IF ORDER_DATE > "12/31/2011" AND ORDER_DATE < "01/01/2013" THEN CONTINUE ELSE STOP, ऑपरेटर हैं: ">" (इससे बड़ा), AND और "<" (इससे कम)।

संचालन जबरदस्ती

कुछ भाषाएं किसी ऑपरेटर के संकार्य को ऑपरेशन होने के लिए उपयुक्त तथ्य प्रकारों में अंतर्निहित रूप से परिवर्तित करने, या मजबूर करने की अनुमति भी देती हैं। उदाहरण के लिए, पर्ल में ज़बरदस्ती के नियमों में 15.14 के परिणाम का उत्पादन करने वाले12 + "3.14" का नेतृत्व होता है। जोड़ने से पहले टेक्स्ट "3.14" को संख्या 3.14 में बदल दिया जाता है। इसके अलावा, 12 एक पूर्णांक है और 3.14 या तो एक फ़्लोटिंग या फिक्स्ड-पॉइंट नंबर है (एक संख्या जिसमें दशमलव स्थान है) इसलिए पूर्णांक क्रमशः विचल अंक (फ़्लोटिंग पॉइंट) या स्थायी (फिक्स्ड)-अंक संख्या में परिवर्तित कर दिया जाता है।

जावास्क्रिप्ट विपरीत नियमों का पालन करती है - उपर्युक्त समान व्यंजक खोजने पर, यह पूर्णांक 12 को एक तार में "12" में बदल देगी,फिर दो संकार्य को "123.14" बनाने के लिए जोड़ देगी ।

किसी भाषा में ज़बरदस्ती की उपस्थिति में, सूक्ष्म क्रमदेशन गलतियों से बचने के लिए क्रमदेशन को संकार्य प्रकार और ऑपरेशन परिणाम प्रकार के बारे में विशिष्ट नियमों के बारे में पता होना चाहिए।

प्रोग्रामिंग भाषाओं में ऑपरेटर सुविधाएँ

निम्न तालिका कई प्रोग्रामिंग भाषाओं में ऑपरेटर सुविधाओं को दिखाती है:

Programming language Nonalphanumeric operator symbols Alphanumeric operator symbols Prefix Infix Postfix Precedence Associativity Overloading Programmer-defined overloading Programmer-defined operator symbols
ALGOL 68 +* ** * / % %* %× - + < <= >= > = /= & -:= +:= *:= /:= %:= %*:= +=: :=: :/=:

(All operators have bold Alphanumeric equivalents, c.f. next column. Some have non ASCII equivalents, c.f. below.) ¬ +× ⊥ ↑ ↓ ⌊ ⌈ × ÷ ÷× ÷* □ ≤ ≥ ≠ ∧ ∨ ×:= ÷:= ÷×:= ÷*:= %×:= :≠:

not abs arg bin entier leng level odd repr round shorten i shl shr up down lwb upb lt le ge gt eq ne and or over mod elem minusab plusab timesab divab overab modab plusto is isnt Yes Yes No Yes (prefix operators always have priority 10) Infix operators are left associative, prefix operators are right associative Yes Yes Yes
APL + - × ÷ ⌈ ⌊ * ⍟ | ! ○ ~ ∨ ∧ ⍱ ⍲ < ≤ = ≥ > ≠ . @ ≡ ≢ ⍴ , ⍪ ⍳ ↑ ↓ ? ⍒ ⍋ ⍉ ⌽ ⊖ ∊ ⊥ ⊤ ⍎ ⍕ ⌹ ⊂ ⊃ ∪ ∩ ⍷ ⌷ ∘ → ← / ⌿ \ ⍀ ¨ ⍣ & ⍨ ⌶ ⊆ ⊣ ⊢ ⍠ ⍤ ⌸ ⌺ ⍸ Alphanumeric symbols need a ⎕ before the keyword Yes (first-order functions only) Yes Yes (higher-order functions only) Higher-order functions precede first-order functions Higher-order functions are left associative, first-order functions are right associative Yes Yes Yes (alphanumeric only)
C () [] -> . ! ~ ++ -- + - * & / % << >> < <= > >= == != ^ | && || ?: = += -= *= /= %= &= ^= sizeof Yes Yes Yes Yes Yes Yes No No
C++ (more) sizeof typeid new delete throw decltype static_cast dynamic cast reinterpret_cast const_cast Yes Yes Yes Yes Yes Yes Yes No
C# (more) Same as C/C++, along with ?. ?[] ?? ??= sizeof nameof new stackalloc await throw checked unchecked is as delegate default true false
LINQ: from select where group...by group...by...into join...in...on...equals join...in...on...equals...into orderby orderby...descending
Roslyn-only: __makeref __refvalue __reftype
Yes Yes Yes Yes Yes Yes Yes No
Java Same as C/C++ new throw instanceof Yes Yes Yes Yes Yes Yes No No
Eiffel [] + - * / // = /= not and or implies "and then" "or else" Yes Yes No Yes Yes No Yes Yes
Haskell + - * / ^ ^^ ** == /= > < >= <= && || >>= >> $ $! . ++ !! : Many more in common libraries The function's name must be put into backticks Yes Yes No Yes Yes Yes, using Type classes Yes
Pascal * / + - = < > <> <= >= := not div mod and or in Yes Yes No Yes Yes Yes No No
Perl -> ++ -- ** ! ~ \ + - . =~ !~ * / % < > <= >= == != <=> ~~ & | ^ && || ' print sort chmod chdir rand and or not xor lt gt le ge eq ne cmp x Yes Yes Yes Yes Yes Yes Yes No
PHP [] ** ++ -- ~ @![7] * / % + - . << >> < <= > >= == != === !== <> <=> & ^ | && || ?? ?: = += -= *= **= /= .= %= &= |= ^= <<= >>= clone new unset print echo isset instanceof and or xor Yes Yes Yes Yes Yes No No No
PL/I ( ) -> + - * / ** > ¬> >= = ¬= <= < ¬< ¬ & | || Yes Yes No Yes Yes No No No
Prolog :- ?- ; , . =.. = \= < =< >= > == \== - + / * spy nospy not is mod Yes Yes Yes Yes Yes No No Yes
Raku ++ -- ** ! ~ ~~ * / + - . < > <= >= == != <=> & | ^ && || // [8] print sort chmod chdir rand and or not xor lt gt le ge eq ne leg cmp x xx Yes Yes Yes Yes Yes Yes Yes Yes[9]
Seed7 {} [] -> ** ! + - * / << >> & >< | = <> > >= < <= <& := +:= -:= *:= /:= <<:= >>:= &:= @:= conv varConv parse conj div rem mdiv mod times mult in not and or digits lpad rpad lpad0 Yes Yes Yes Yes Yes Yes Yes Yes
Smalltalk (yes - Up to two characters[10]) Alphanumeric symbols need a colon after the keyword No Yes Yes No No Yes Yes Yes
Swift Any Unicode symbol string except ., including ! ~ + - * / % =+ =- =* =/ =% &+ &- &* =&+ =&- =&* && || << >> & | ^ == != < <= > >= ?? ... ..< in standard library is as as? Yes Yes Yes Yes (defined as partial order in precedence groups) Yes (defined as part of precedence groups) Yes Yes Yes
Visual Basic .NET () . ! ?() ?. ?! + - * / \ & << >> < <= > >= ^ <> = += -= *= /= \= &= ^= <<= >>= New Await Mod Like Is IsNot Not And AndAlso Or OrElse Xor If(...,...) If(...,...,...) GetXmlNamespace(...) GetType(...) NameOf(...) TypeOf...Is TypeOf...IsNot DirectCast(...,...) TryCast(...,...) CType(...,...) CBool(...) CByte(...) CChar(...) CDate(...) CDec(...) CDbl(...) CInt(...) CLng(...) CObj(...) CSByte(...) CShort(...) CSng(...) CStr(...) CUInt(...) CULng(...) CUShort(...)
LINQ: From Aggregate...Into Select Distinct Where <Order By>...[Ascending|Descending] Take <Take While> Skip <Skip While> Let Group...By...Into Join...On <Group Join...On...Into>
Yes Yes Yes Yes Yes Yes Yes No


यह भी देखें

टिप्पणियाँ

  1. Conversely a right-associative operator with its right argument, though this is rarer.
  2. Introducing a new operator changes the lexical specification of the language, which changes the lexical analysis. The arity and precedence of the operator is then part of the phrase syntax of the language, which changes the phrase-level analysis. For example, adding an operator @ requires lexing and tokenizing this character, and the phrase structure (syntax tree) depends on the arity and precedence of this operator.


इस पेज में लापता आंतरिक लिंक की सूची

  • अधिक से अधिक चिह्न
  • प्रोग्रामिंग की भाषाएँ
  • सिंटेक्स (प्रोग्रामिंग भाषाएं)
  • वस्तु (कंप्यूटर विज्ञान)
  • क्षेत्र (कंप्यूटर विज्ञान)
  • कार्रवाई के आदेश
  • समारोह (कंप्यूटर विज्ञान)
  • अभिव्यक्ति (कंप्यूटर विज्ञान)
  • कैस्केडिंग विधि
  • सी और सी ++ में ऑपरेटर्स
  • सही
  • अंकगणितीय ऑपरेशन
  • शाब्दिक विश्लेषण
  • तीन तरह की तुलना
  • केंद्रीय प्रसंस्करण इकाइयां
  • स्ट्रिंग संयोजन

संदर्भ

  1. "ऑपरेटर इनपुट फॉर्म-वोल्फ्राम लैंग्वेज डॉक्यूमेंटेशन". reference.wolfram.com.
  2. "मैक्सिमा 5.42.0 मैनुअल: 7. ऑपरेटर्स". maxima.sourceforge.net.
  3. "उपसर्ग, पोस्टफिक्स और सर्कमफिक्स ऑपरेटर्स". mythryl.org.
  4. "ऑपरेटर्स". doc.perl6.org.
  5. "एसडब्ल्यूआई-प्रोलॉग -- ऑप/3". www.swi-prolog.org.
  6. "एक ऑपरेटर घोषित करें". seed7.sourceforge.net.
  7. "PHP: Error Control Operators - Manual". php.net.
  8. "Operators". docs.perl6.org.
  9. "Functions". docs.perl6.org.
  10. Goldberg, Adele. "Smalltalk-80: The Language and its Implementation, p. 27, ISBN 0-201-11371-6" (PDF).