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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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