अभिव्यक्ति-उन्मुख प्रोग्रामिंग भाषा

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

लिस्प (प्रोग्रामिंग भाषा) और ALGOL 68 अभिव्यक्ति-उन्मुख भाषाएँ हैं। पास्कल प्रोग्रामिंग भाषा  एक्सप्रेशन-ओरिएंटेड लैंग्वेज नहीं है।

सभी कार्यात्मक प्रोग्रामिंग भाषाएं अभिव्यक्ति-उन्मुख हैं।

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

एडा (प्रोग्रामिंग लैंग्वेज) और जावा (प्रोग्रामिंग भाषा)  के डिजाइनर सशर्त (कंप्यूटर प्रोग्रामिंग) को उन लोगों तक सीमित करके इस प्रकार की गलती को रोकते हैं जो बूलियन डेटा प्रकार के लिए कड़ाई से मूल्यांकन करते हैं। पायथन (प्रोग्रामिंग लैंग्वेज) के डिजाइनरों ने एक अभिव्यक्ति के बजाय एक बयान के रूप में असाइनमेंट को लागू किया, इस प्रकार असाइनमेंट को किसी अन्य कथन या अभिव्यक्ति के अंदर नेस्ट करने से रोक दिया। (संस्करण 3.8 तक एक अलग सिंटैक्स के साथ 'असाइनमेंट एक्सप्रेशन' जोड़ा गया। )

कुछ अभिव्यक्ति-उन्मुख भाषाओं में, अभिव्यक्तियाँ जो केवल दुष्प्रभाव (कंप्यूटर विज्ञान) का कारण बनती हैं, शून्य प्रकार लौटाती हैं।

उदाहरण

 * एल्गोल 68
 * परम आनंद
 * चिह्न (प्रोग्रामिंग भाषा)
 * लिस्प (प्रोग्रामिंग भाषा) * एमएल (प्रोग्रामिंग भाषा)
 * पर्ल
 * रिबोल
 * रूबी (प्रोग्रामिंग भाषा)
 * अमृत (प्रोग्रामिंग भाषा)
 * एरलांग (प्रोग्रामिंग भाषा)
 * हास्केल (प्रोग्रामिंग भाषा)
 * जंग (प्रोग्रामिंग भाषा)
 * स्काला (प्रोग्रामिंग भाषा)
 * कोटलिन (प्रोग्रामिंग भाषा)
 * OCaml

यह भी देखें

 * कमांड-क्वेरी पृथक्करण
 * कार्यात्मक प्रोग्रामिंग