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

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

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

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

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

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

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

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

उदाहरण

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

यह भी देखें

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