लैंग्वेज -ओरिएंटेड प्रोग्रामिंग: Difference between revisions

From Vigyanwiki
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=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 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
लैंग्वेज-ओरिएंटेड प्रोग्रामिंग की अवधारणा उपयोगकर्ता के शब्दों में आवश्यकताओं को पकड़ने के लिए दृष्टिकोण अपनाती है और फिर उपयोगकर्ता के विवरण के लिए यथासंभव प्रत्यक्ष हो। इसके समरूपता में कार्यान्वयन लैंग्वेज बनाने का प्रयास करती है। जिससे आवश्यकताओं और कार्यान्वयन के बीच मैपिंग यथासंभव प्रत्यक्ष हो। इस समरूपता की निकटता का माप लैंग्वेज रीडनडेनसी है। जिसे आवश्यकताओं में स्वयं परिवर्तन को परिवर्तन करने के लिए आवश्यक संपादन कार्यों की संख्या के रूप में परिभाषित किया गया है। यह प्राथमिकता नहीं मानी जाती कि नई लैंग्वेज को परिवर्तन करने के लिए सबसे अच्छी लैंग्वेज कौन सी है। किंतु डेवलपर सूचना प्रवाह के विश्लेषण द्वारा बनाए गए विकल्पों में से चुन सकता है कि कौन सी जानकारी प्राप्त की जाती है। इसकी संरचना क्या है, कब प्राप्त की जाती है और इसके साथ क्या किया जाता है।<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|केर्मेटा]], या [[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}} को पुनःप्राप्त हो जाता है  
[[रैकेट प्रोग्रामिंग भाषा|रैकेट प्रोग्रामिंग लैंग्वेज]] और [[रास्कलएमपीएल]] को प्रारंभ से ही लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का समर्थन करने के लिए डिज़ाइन किया गया था।<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. 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. 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.
  3. Dunlavey (1994). Building Better Applications: a Theory of Efficient Software Development. International Thomson Publishing. ISBN 0-442-01740-5.
  4. Fowler, Martin (12 June 2005). "Language Workbenches: The Killer-App for Domain Specific Languages?". Retrieved 14 April 2015.


बाहरी संबंध