लैंग्वेज -ओरिएंटेड प्रोग्रामिंग: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Programming paradigms}} | {{Programming paradigms}} | ||
'''लैंग्वेज -ओरिएंटेड प्रोग्रामिंग (एलओपी)'''<ref name="lop">{{cite journal |last1=Ward |first1=Martin |title=भाषा उन्मुखी प्रोग्रामिंग|journal=Software - Concepts and Tools |date=1994 |volume=15 |issue=4 |pages=147–161 |doi=10.1007/978-1-4302-2390-0_12 |isbn=978-1-4302-2389-4 |url=http://www.gkc.org.uk/martin/papers/middle-out-t.pdf |access-date=15 May 2019}}</ref> | '''लैंग्वेज -ओरिएंटेड प्रोग्रामिंग (एलओपी)'''<ref name="lop">{{cite journal |last1=Ward |first1=Martin |title=भाषा उन्मुखी प्रोग्रामिंग|journal=Software - Concepts and Tools |date=1994 |volume=15 |issue=4 |pages=147–161 |doi=10.1007/978-1-4302-2390-0_12 |isbn=978-1-4302-2389-4 |url=http://www.gkc.org.uk/martin/papers/middle-out-t.pdf |access-date=15 May 2019}}</ref> सॉफ्टवेयर-विकास प्रतिमान है जहां लैंग्वेज सॉफ्टवेयर बिल्डिंग ब्लॉक है। जिसकी स्थिति ऑब्जेक्ट, मॉड्यूल और घटकों के समान है<ref name=Felleisen2018>{{cite journal |last1=Felleisen |first1=Matthias |last2=Findler |first2=Robert Bruce |last3=Flatt |first3=Matthew |last4=Krishnamurthi |first4=Shriram |last5=Barzilay |first5=Eli |last6=McCarthy |first6=Jay |last7=Tobin-Hochstadt |first7=Sam |title=एक प्रोग्रामयोग्य प्रोग्रामिंग भाषा|journal=Communications of the ACM |date=March 2018 |volume=61 |issue=3 |pages=62–71 |doi=10.1145/3127323 |s2cid=3887010 |url=https://cacm.acm.org/magazines/2018/3/225475-a-programmable-programming-language/fulltext |access-date=15 May 2019}}</ref> और [[सामान्य प्रयोजन प्रोग्रामिंग भाषा|जनरल पर्पस प्रोग्रामिंग लैंग्वेज]] में समस्याओं को हल करने के अतिरिक्त, प्रोग्रामर पहले समस्या के लिए या अधिक [[डोमेन-विशिष्ट भाषा|डोमेन-स्पेसिफिक]] [[सामान्य प्रयोजन प्रोग्रामिंग भाषा|लैंग्वेज]] (डीएसएल) बनाता है और उन लैंग्वेज ओं में समस्या का समाधान करता है। लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का पहली बार मार्टिन वार्ड के 1994 के पेपर लैंग्वेज ओरिएंटेड प्रोग्रामिंग में विस्तार से वर्णन किया गया था<ref name="lop" /> सॉफ्टवेयर-कॉन्सेप्ट्स एंड टूल्स, खंड 15, संख्या 4, पीपी 147-161, 1994 में प्रकाशित किया गया था। | ||
==अवधारणा== | ==अवधारणा== | ||
लैंग्वेज -ओरिएंटेड प्रोग्रामिंग की अवधारणा उपयोगकर्ता के शब्दों में आवश्यकताओं को पकड़ने के लिए दृष्टिकोण अपनाती है | लैंग्वेज-ओरिएंटेड प्रोग्रामिंग की अवधारणा उपयोगकर्ता के शब्दों में आवश्यकताओं को पकड़ने के लिए दृष्टिकोण अपनाती है और फिर उपयोगकर्ता के विवरण के लिए यथासंभव प्रत्यक्ष हो। इसके समरूपता में कार्यान्वयन लैंग्वेज बनाने का प्रयास करती है। जिससे आवश्यकताओं और कार्यान्वयन के बीच मैपिंग यथासंभव प्रत्यक्ष हो। इस समरूपता की निकटता का माप लैंग्वेज रीडनडेनसी है। जिसे आवश्यकताओं में स्वयं परिवर्तन को परिवर्तन करने के लिए आवश्यक संपादन कार्यों की संख्या के रूप में परिभाषित किया गया है। यह प्राथमिकता नहीं मानी जाती कि नई लैंग्वेज को परिवर्तन करने के लिए सबसे अच्छी लैंग्वेज कौन सी है। किंतु डेवलपर सूचना प्रवाह के विश्लेषण द्वारा बनाए गए विकल्पों में से चुन सकता है कि कौन सी जानकारी प्राप्त की जाती है। इसकी संरचना क्या है, कब प्राप्त की जाती है और इसके साथ क्या किया जाता है।<ref>{{cite book | ||
|author = Dunlavey | |author = Dunlavey | ||
|year = 1994 | |year = 1994 | ||
Line 14: | Line 14: | ||
==विकास== | ==विकास== | ||
[[रैकेट प्रोग्रामिंग भाषा|रैकेट प्रोग्रामिंग लैंग्वेज]] और [[रास्कलएमपीएल]] को प्रारंभ से ही लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का समर्थन करने के लिए डिज़ाइन किया गया था।<ref name=Felleisen2018 /> अन्य [[भाषा कार्यक्षेत्र|लैंग्वेज कार्यक्षेत्र]]<ref name="killerapp">{{cite web |url= http://martinfowler.com/articles/languageWorkbench.html |title=Language Workbenches: The Killer-App for Domain Specific Languages? |last1=Fowler |first1=Martin |date=12 June 2005 |access-date=14 April 2015}}</ref> [[JetBrains MPS|जेटब्रेन एमपीएस]], [[Kermeta|केर्मेटा]] | [[रैकेट प्रोग्रामिंग भाषा|रैकेट प्रोग्रामिंग लैंग्वेज]] और [[रास्कलएमपीएल]] को प्रारंभ से ही लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का समर्थन करने के लिए डिज़ाइन किया गया था।<ref name=Felleisen2018 /> अन्य [[भाषा कार्यक्षेत्र|लैंग्वेज कार्यक्षेत्र]]<ref name="killerapp">{{cite web |url= http://martinfowler.com/articles/languageWorkbench.html |title=Language Workbenches: The Killer-App for Domain Specific Languages? |last1=Fowler |first1=Martin |date=12 June 2005 |access-date=14 April 2015}}</ref> [[JetBrains MPS|जेटब्रेन एमपीएस]], [[Kermeta|केर्मेटा]] या [[Xtext|एक्स टेक्स्ट]] जैसे उपकरण डीएसएल और लैंग्वेज -ओरिएंटेड प्रोग्रामिंग को डिज़ाइन और कार्यान्वित करने के लिए उपकरण प्रदान करते हैं। {{cite web |url= https://link.springer.com/chapter/10.1007/978-3-319-02654-1_11 |title=भाषा कार्यक्षेत्र में अत्याधुनिक|last1=एर्डवेग |first1=सेबास्टियन |date=2013 |access-date=4 July 2023}} को पुनःप्राप्त हो जाता है | ||
==यह भी देखें== | ==यह भी देखें== | ||
Line 20: | Line 20: | ||
* दिएलेक्टिंग | * दिएलेक्टिंग | ||
* डोमेन-[[डोमेन-विशिष्ट भाषा|स्पेसिफिक]] लैंग्वेज | * डोमेन-[[डोमेन-विशिष्ट भाषा|स्पेसिफिक]] लैंग्वेज | ||
* [[एक्स्टेंसिबल प्रोग्रामिंग]] | * [[एक्स्टेंसिबल प्रोग्रामिंग]] | ||
* [[जानबूझकर प्रोग्रामिंग|इन्टेंशनल प्रोग्रामिंग]] | * [[जानबूझकर प्रोग्रामिंग|इन्टेंशनल प्रोग्रामिंग]] | ||
* [[समरूपता]] | * [[समरूपता]] |
Revision as of 13:33, 7 August 2023
लैंग्वेज -ओरिएंटेड प्रोग्रामिंग (एलओपी)[1] सॉफ्टवेयर-विकास प्रतिमान है जहां लैंग्वेज सॉफ्टवेयर बिल्डिंग ब्लॉक है। जिसकी स्थिति ऑब्जेक्ट, मॉड्यूल और घटकों के समान है[2] और जनरल पर्पस प्रोग्रामिंग लैंग्वेज में समस्याओं को हल करने के अतिरिक्त, प्रोग्रामर पहले समस्या के लिए या अधिक डोमेन-स्पेसिफिक लैंग्वेज (डीएसएल) बनाता है और उन लैंग्वेज ओं में समस्या का समाधान करता है। लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का पहली बार मार्टिन वार्ड के 1994 के पेपर लैंग्वेज ओरिएंटेड प्रोग्रामिंग में विस्तार से वर्णन किया गया था[1] सॉफ्टवेयर-कॉन्सेप्ट्स एंड टूल्स, खंड 15, संख्या 4, पीपी 147-161, 1994 में प्रकाशित किया गया था।
अवधारणा
लैंग्वेज-ओरिएंटेड प्रोग्रामिंग की अवधारणा उपयोगकर्ता के शब्दों में आवश्यकताओं को पकड़ने के लिए दृष्टिकोण अपनाती है और फिर उपयोगकर्ता के विवरण के लिए यथासंभव प्रत्यक्ष हो। इसके समरूपता में कार्यान्वयन लैंग्वेज बनाने का प्रयास करती है। जिससे आवश्यकताओं और कार्यान्वयन के बीच मैपिंग यथासंभव प्रत्यक्ष हो। इस समरूपता की निकटता का माप लैंग्वेज रीडनडेनसी है। जिसे आवश्यकताओं में स्वयं परिवर्तन को परिवर्तन करने के लिए आवश्यक संपादन कार्यों की संख्या के रूप में परिभाषित किया गया है। यह प्राथमिकता नहीं मानी जाती कि नई लैंग्वेज को परिवर्तन करने के लिए सबसे अच्छी लैंग्वेज कौन सी है। किंतु डेवलपर सूचना प्रवाह के विश्लेषण द्वारा बनाए गए विकल्पों में से चुन सकता है कि कौन सी जानकारी प्राप्त की जाती है। इसकी संरचना क्या है, कब प्राप्त की जाती है और इसके साथ क्या किया जाता है।[3]
विकास
रैकेट प्रोग्रामिंग लैंग्वेज और रास्कलएमपीएल को प्रारंभ से ही लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का समर्थन करने के लिए डिज़ाइन किया गया था।[2] अन्य लैंग्वेज कार्यक्षेत्र[4] जेटब्रेन एमपीएस, केर्मेटा या एक्स टेक्स्ट जैसे उपकरण डीएसएल और लैंग्वेज -ओरिएंटेड प्रोग्रामिंग को डिज़ाइन और कार्यान्वित करने के लिए उपकरण प्रदान करते हैं। एर्डवेग, सेबास्टियन (2013). "भाषा कार्यक्षेत्र में अत्याधुनिक". Retrieved 4 July 2023. को पुनःप्राप्त हो जाता है
यह भी देखें
- ग्रामर -ओरिएंटेड प्रोग्रामिंग
- दिएलेक्टिंग
- डोमेन-स्पेसिफिक लैंग्वेज
- एक्स्टेंसिबल प्रोग्रामिंग
- इन्टेंशनल प्रोग्रामिंग
- समरूपता
संदर्भ
- ↑ 1.0 1.1 Ward, Martin (1994). "भाषा उन्मुखी प्रोग्रामिंग" (PDF). Software - Concepts and Tools. 15 (4): 147–161. doi:10.1007/978-1-4302-2390-0_12. ISBN 978-1-4302-2389-4. Retrieved 15 May 2019.
- ↑ 2.0 2.1 Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam (March 2018). "एक प्रोग्रामयोग्य प्रोग्रामिंग भाषा". Communications of the ACM. 61 (3): 62–71. doi:10.1145/3127323. S2CID 3887010. Retrieved 15 May 2019.
- ↑ Dunlavey (1994). Building Better Applications: a Theory of Efficient Software Development. International Thomson Publishing. ISBN 0-442-01740-5.
- ↑ Fowler, Martin (12 June 2005). "Language Workbenches: The Killer-App for Domain Specific Languages?". Retrieved 14 April 2015.
बाहरी संबंध
- Language Oriented Programming: The Next Programming Paradigm Sergey Dmitriev's paper that further explored the topic.
- The State of the Art in Language Workbenches. Conclusions from the Language Workbench Challenge. In: Proceedings of the 6th International Conference on Software Language Engineering (SLE'13). 2013.
- Language Oriented Programming in MetaLisp Gyuri Lajos's thesis 1992 University of Leeds The system used the very same Top Down Parsing Language algorithm that powered Tree-Meta