अभिव्यक्ति (कंप्यूटर विज्ञान)

कंप्यूटर विज्ञान में, एक अभिव्यक्ति एक प्रोग्रामिंग भाषा में एक सिंटेक्स (प्रोग्रामिंग भाषाएं) इकाई है जिसका मूल्यांकन इसके मूल्य को निर्धारित करने के लिए किया जा सकता है। यह एक या एक से अधिक स्थिरांक (प्रोग्रामिंग), चर (प्रोग्रामिंग), समारोह (प्रोग्रामिंग) और ऑपरेटर (प्रोग्रामिंग) का एक संयोजन है जो प्रोग्रामिंग भाषा की व्याख्या  करता  है (इसके पूर्वता और संघ के विशेष नियमों के अनुसार) और उत्पादन करने के लिए गणना करता है ("वापसी के लिए", एक राज्य (कंप्यूटर विज्ञान) वातावरण में) एक और मूल्य। गणितीय अभिव्यक्तियों के लिए इस प्रक्रिया को मूल्यांकन कहलाती है।

सरल सेटिंग्स में, परिणामी मूल्य सामान्य रूप से विभिन्न आदिम डेटा प्रकारों में से एक होता है, जैसे संख्यात्मक, स्ट्रिंग (कंप्यूटर विज्ञान), बूलियन अभिव्यक्ति, जटिल डेटा प्रकार या अन्य प्रकार है।

अभिव्यक्ति अक्सर कथन (कंप्यूटर विज्ञान) के विपरीत माना जाता है - एक वाक्य-विन्यास इकाई जिसका कोई मूल्य नहीं है (एक निर्देश)।

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

परिणाम प्रकार
के रूप में शून्य

सी (प्रोग्रामिंग भाषा) और अधिकांश सी-व्युत्पन्न भाषाओं में, शून्य प्रकार के रिटर्न प्रकार वाले फ़ंक्शन के लिए कॉल एक वैध अभिव्यक्ति है। प्रकार के शून्य के मान का उपयोग नहीं किया जा सकता है, इसलिए ऐसी अभिव्यक्ति का मान हमेशा फेंक दिया जाता है।

दुष्प्रभाव और उन्मूलन
कई प्रोग्रामिंग भाषाओं में एक फ़ंक्शन, और इसलिए एक फ़ंक्शन युक्त अभिव्यक्ति का साइड इफेक्ट (कंप्यूटर विज्ञान) हो सकता है। साइड इफेक्ट वाली अभिव्यक्ति में सामान्य रूप से संदर्भित पारदर्शिता की संपत्ति नहीं होती है। कई भाषाओं में (जैसे C++), व्यंजकों को अर्धविराम से समाप्त किया जा सकता है एक्सप्रेशन को एक्सप्रेशन बयान (प्रोग्रामिंग) में बदलने के लिए। यह कार्यान्वयन को केवल इसके दुष्प्रभावों के लिए अभिव्यक्ति का मूल्यांकन करने और अभिव्यक्ति के परिणाम की अवहेलना करने के लिए कहता है (उदा। x+1;) जब तक कि यह एक अभिव्यक्ति बयान का एक हिस्सा नहीं है जो साइड-इफेक्ट्स को प्रेरित करता है (उदाहरण के लिए y=x+1; या func1(func2);).

चेतावनी
ध्यान दें कि साइड इफेक्ट की औपचारिक धारणा चल रहे कार्यक्रम की अमूर्त स्थिति में बदलाव है।

साइड इफेक्ट का एक अन्य वर्ग कम्प्यूटेशनल सिस्टम की ठोस स्थिति में परिवर्तन है, जैसे डेटा को कैश मेमोरी में लोड करना। जिन भाषाओं को अक्सर साइड इफेक्ट-फ्री के रूप में वर्णित किया जाता है, उनके आम तौर पर अभी भी ठोस साइड इफेक्ट होते हैं जिनका शोषण किया जा सकता है, उदाहरण के लिए, साइड-चैनल हमलों में।

इसके अलावा, बीता हुआ समय एक अभिव्यक्ति का मूल्यांकन करता है (यहां तक ​​​​कि कोई अन्य स्पष्ट साइड इफेक्ट के साथ भी), कभी-कभी सिस्टम के सही संचालन के लिए आवश्यक होता है, क्योंकि समय में व्यवहार सिस्टम के अन्य भागों द्वारा मूल्यांकन वातावरण के बाहर आसानी से दिखाई देता है जिसके साथ यह इंटरैक्ट करता है, और बेंचमार्क (कंप्यूटिंग) करते समय इसे प्राथमिक प्रभाव के रूप में भी माना जा सकता है।

यह विशेष प्रोग्रामिंग भाषा विनिर्देश पर निर्भर करता है कि क्या बिना सार साइड इफेक्ट वाली अभिव्यक्ति प्रोसेसिंग वातावरण द्वारा निष्पादन पथ से प्रोग्राम अनुकूलन कर सकती है जिसमें अभिव्यक्ति का मूल्यांकन किया जाता है।

यह भी देखें

 * वक्तव्य (कंप्यूटर विज्ञान) (विपरीत)
 * बूलियन अभिव्यक्ति
 * अभिव्यक्ति (गणित)
 * मूल्यांकन रणनीति