अभिव्यक्ति-उन्मुख प्रोग्रामिंग भाषा: Difference between revisions
No edit summary |
No edit summary |
||
Line 10: | Line 10: | ||
आलोचकों, भाषा डिजाइनरों सहित,<ref>[https://www.oracle.com/java/technologies/javase/codeconventions-programmingpractices.html#547 Java Code Conventions "10.4 Variable Assignments"]</ref> [[सॉफ्टवेयर बग]] की एक पूरी कक्षा के लिए दोष अभिव्यक्ति-अभिविन्यास जिसमें एक प्रोग्रामर गलती से एक [[असाइनमेंट (कंप्यूटर विज्ञान)]] अभिव्यक्ति को कोड करता है, जो एक चर को उस अभिव्यक्ति के साथ [[समानता (रिलेशनल ऑपरेटर)]] के परीक्षण के अतिरिक्त एक अभिव्यक्ति के साथ बदल देता है। | आलोचकों, भाषा डिजाइनरों सहित,<ref>[https://www.oracle.com/java/technologies/javase/codeconventions-programmingpractices.html#547 Java Code Conventions "10.4 Variable Assignments"]</ref> [[सॉफ्टवेयर बग]] की एक पूरी कक्षा के लिए दोष अभिव्यक्ति-अभिविन्यास जिसमें एक प्रोग्रामर गलती से एक [[असाइनमेंट (कंप्यूटर विज्ञान)]] अभिव्यक्ति को कोड करता है, जो एक चर को उस अभिव्यक्ति के साथ [[समानता (रिलेशनल ऑपरेटर)]] के परीक्षण के अतिरिक्त एक अभिव्यक्ति के साथ बदल देता है। | ||
एडा (प्रोग्रामिंग भाषा) और [[ जावा (प्रोग्रामिंग भाषा) |जावा (प्रोग्रामिंग भाषा)]] के डिजाइनर [[सशर्त (कंप्यूटर प्रोग्रामिंग)|नियमबद्ध (कंप्यूटर प्रोग्रामिंग)]] को उन लोगों तक सीमित करके इस प्रकार की गलती को रोकते हैं जो [[बूलियन डेटा प्रकार]] के लिए | एडा (प्रोग्रामिंग भाषा) और [[ जावा (प्रोग्रामिंग भाषा) |जावा (प्रोग्रामिंग भाषा)]] के डिजाइनर [[सशर्त (कंप्यूटर प्रोग्रामिंग)|नियमबद्ध (कंप्यूटर प्रोग्रामिंग)]] को उन लोगों तक सीमित करके इस प्रकार की गलती को रोकते हैं जो [[बूलियन डेटा प्रकार]] के लिए शक्ति से मूल्यांकन करते हैं।<ref>[https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.9 The Java Language Specification, Java SE 8 Edition "14.9 The if Statement"]</ref><ref>[https://www.adaic.org/learn/materials/intro/part4/ Introducing Ada]</ref> | ||
पायथन (प्रोग्रामिंग भाषा) के डिजाइनरों ने एक अभिव्यक्ति के अतिरिक्त एक कथन के रूप में असाइनमेंट को प्रयुक्त किया, इस प्रकार असाइनमेंट को किसी अन्य कथन या अभिव्यक्ति के अंदर नेस्ट करने से रोक दिया।<ref name=":1">[https://docs.python.org/3/reference/simple_stmts.html#assignment The Python Language Reference "6.2. Assignment statements"]</ref> (संस्करण 3.8 तक एक अलग सिंटैक्स के साथ 'असाइनमेंट एक्सप्रेशन' जोड़ा गया।<ref>[https://www.python.org/dev/peps/pep-0572/ "PEP 572: Assignment Expressions"]</ref>) | पायथन (प्रोग्रामिंग भाषा) के डिजाइनरों ने एक अभिव्यक्ति के अतिरिक्त एक कथन के रूप में असाइनमेंट को प्रयुक्त किया, इस प्रकार असाइनमेंट को किसी अन्य कथन या अभिव्यक्ति के अंदर नेस्ट करने से रोक दिया।<ref name=":1">[https://docs.python.org/3/reference/simple_stmts.html#assignment The Python Language Reference "6.2. Assignment statements"]</ref> (संस्करण 3.8 तक एक अलग सिंटैक्स के साथ 'असाइनमेंट एक्सप्रेशन' जोड़ा गया।<ref>[https://www.python.org/dev/peps/pep-0572/ "PEP 572: Assignment Expressions"]</ref>) | ||
कुछ अभिव्यक्ति-उन्मुख भाषाओं में, अभिव्यक्तियाँ जो केवल दुष्प्रभाव (कंप्यूटर विज्ञान) का कारण बनती हैं, [[शून्य प्रकार]] लौटाती हैं। | कुछ अभिव्यक्ति-उन्मुख भाषाओं में, अभिव्यक्तियाँ जो केवल दुष्प्रभाव (कंप्यूटर विज्ञान) का कारण बनती हैं, [[शून्य प्रकार]] लौटाती हैं। | ||
== उदाहरण == | == उदाहरण == | ||
* एल्गोल 68 | * एल्गोल 68 |
Revision as of 10:11, 19 May 2023
एक अभिव्यक्ति उन्मुख प्रोग्रामिंग भाषा एक प्रोग्रामिंग भाषा है जिसमें प्रत्येक (या लगभग हर) निर्माण एक अभिव्यक्ति (कंप्यूटर विज्ञान) है और इस प्रकार एक मान उत्पन्न करता है।[1] विशिष्ट अपवाद मैक्रो (कंप्यूटर विज्ञान) परिभाषाएं, प्रीप्रोसेसर आदेश और घोषणा (कंप्यूटर प्रोग्रामिंग) हैं, जो अभिव्यक्ति-उन्मुख भाषाएं अधिकांशतः कथन (कंप्यूटर विज्ञान) के रूप में व्यवहार करती हैं।
लिस्प (प्रोग्रामिंग भाषा)[2] और अल्गोल68 अभिव्यक्ति-उन्मुख भाषाएँ हैं। पास्कल प्रोग्रामिंग भाषा एक्सप्रेशन-ओरिएंटेड भाषा नहीं है।
सभी कार्यात्मक प्रोग्रामिंग भाषाएं अभिव्यक्ति-उन्मुख हैं।
आलोचना और रोकथाम
आलोचकों, भाषा डिजाइनरों सहित,[3] सॉफ्टवेयर बग की एक पूरी कक्षा के लिए दोष अभिव्यक्ति-अभिविन्यास जिसमें एक प्रोग्रामर गलती से एक असाइनमेंट (कंप्यूटर विज्ञान) अभिव्यक्ति को कोड करता है, जो एक चर को उस अभिव्यक्ति के साथ समानता (रिलेशनल ऑपरेटर) के परीक्षण के अतिरिक्त एक अभिव्यक्ति के साथ बदल देता है।
एडा (प्रोग्रामिंग भाषा) और जावा (प्रोग्रामिंग भाषा) के डिजाइनर नियमबद्ध (कंप्यूटर प्रोग्रामिंग) को उन लोगों तक सीमित करके इस प्रकार की गलती को रोकते हैं जो बूलियन डेटा प्रकार के लिए शक्ति से मूल्यांकन करते हैं।[4][5]
पायथन (प्रोग्रामिंग भाषा) के डिजाइनरों ने एक अभिव्यक्ति के अतिरिक्त एक कथन के रूप में असाइनमेंट को प्रयुक्त किया, इस प्रकार असाइनमेंट को किसी अन्य कथन या अभिव्यक्ति के अंदर नेस्ट करने से रोक दिया।[6] (संस्करण 3.8 तक एक अलग सिंटैक्स के साथ 'असाइनमेंट एक्सप्रेशन' जोड़ा गया।[7])
कुछ अभिव्यक्ति-उन्मुख भाषाओं में, अभिव्यक्तियाँ जो केवल दुष्प्रभाव (कंप्यूटर विज्ञान) का कारण बनती हैं, शून्य प्रकार लौटाती हैं।
उदाहरण
- एल्गोल 68
- परम आनंद
- चिह्न (प्रोग्रामिंग भाषा)
- लिस्प (प्रोग्रामिंग भाषा)[2]* एमएल (प्रोग्रामिंग भाषा)
- पर्ल
- रिबोल
- रूबी (प्रोग्रामिंग भाषा)
- अमृत (प्रोग्रामिंग भाषा)
- एरलांग (प्रोग्रामिंग भाषा)
- हास्केल (प्रोग्रामिंग भाषा)
- जंग (प्रोग्रामिंग भाषा)[8]
- स्काला (प्रोग्रामिंग भाषा)
- कोटलिन (प्रोग्रामिंग भाषा)
- ओसीएएमएल[9]
यह भी देखें
- कमांड-क्वेरी पृथक्करण
- कार्यात्मक प्रोग्रामिंग
संदर्भ
- ↑ "शब्दावली - द रस्ट प्रोग्रामिंग लैंग्वेज". web.mit.edu. Retrieved 2022-07-06.
- ↑ 2.0 2.1 Syme, Don (2020-06-14). "एफ # का प्रारंभिक इतिहास". Proceedings of the ACM on Programming Languages (in English). 4 (HOPL): 1–58. doi:10.1145/3386325. ISSN 2475-1421.
- ↑ Java Code Conventions "10.4 Variable Assignments"
- ↑ The Java Language Specification, Java SE 8 Edition "14.9 The if Statement"
- ↑ Introducing Ada
- ↑ The Python Language Reference "6.2. Assignment statements"
- ↑ "PEP 572: Assignment Expressions"
- ↑ "कार्य - जंग प्रोग्रामिंग भाषा". web.mit.edu. Retrieved 2022-07-06.
- ↑ "COS 326: Functional Programming". www.cs.princeton.edu. Retrieved 2022-07-06.