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

From Vigyanwiki
(Created page with "{{Programming paradigms}} भाषा-उन्मुख प्रोग्रामिंग (एलओपी)<ref name="lop">{{cite journal |last1=Ward |first1=Martin |titl...")
 
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 में प्रकाशित किया गया था।


==अवधारणा==
==अवधारणा==
भाषा-उन्मुख प्रोग्रामिंग की अवधारणा उपयोगकर्ता के शब्दों में आवश्यकताओं को पकड़ने के लिए दृष्टिकोण अपनाती है, और फिर उपयोगकर्ता के विवरण के लिए यथासंभव wikt:isomorphic#Adjective के रूप में एक कार्यान्वयन भाषा बनाने का प्रयास करती है, ताकि आवश्यकताओं और कार्यान्वयन के बीच मैपिंग यथासंभव प्रत्यक्ष हो। इस समरूपता की निकटता का एक माप भाषा की अतिरेक है, जिसे आवश्यकताओं में एक अकेले परिवर्तन को लागू करने के लिए आवश्यक संपादन कार्यों की संख्या के रूप में परिभाषित किया गया है। यह प्राथमिकता नहीं मानी जाती कि नई भाषा को लागू करने के लिए सबसे अच्छी भाषा कौन सी है। बल्कि, डेवलपर सूचना प्रवाह के विश्लेषण द्वारा बनाए गए विकल्पों में से चुन सकता है - कौन सी जानकारी हासिल की जाती है, इसकी संरचना क्या है, कब हासिल की जाती है, किससे और इसके साथ क्या किया जाता है।<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]] जैसे उपकरण DSL और भाषा-उन्मुख प्रोग्रामिंग को डिज़ाइन और कार्यान्वित करने के लिए उपकरण प्रदान करते हैं।{{cite web |url= https://link.springer.com/chapter/10.1007/978-3-319-02654-1_11 |title=भाषा कार्यक्षेत्र में अत्याधुनिक|last1=Erdweg |first1=Sebastian |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=Erdweg |first1=Sebastian |date=2013 |access-date=4 July 2023}} को पुनःप्राप्त हो जाता है


==यह भी देखें==
==यह भी देखें==
* [[व्याकरण-उन्मुख प्रोग्रामिंग]]
* [[व्याकरण-उन्मुख प्रोग्रामिंग|ग्रामर -ओरिएंटेड प्रोग्रामिंग]]
* [[बोली लगाना]]
* दिएलेक्टिंग
* डोमेन-विशिष्ट भाषा
* डोमेन-[[डोमेन-विशिष्ट भाषा|स्पेसिफिक]] लैंग्वेज
* [[एक्स्टेंसिबल प्रोग्रामिंग]]
* [[एक्स्टेंसिबल प्रोग्रामिंग]]
* [[जानबूझकर प्रोग्रामिंग]]
* [[जानबूझकर प्रोग्रामिंग|इन्टेंशनल प्रोग्रामिंग]]
* [[समरूपता]]
* [[समरूपता]]



Revision as of 08:21, 3 August 2023

लैंग्वेज -ओरिएंटेड प्रोग्रामिंग (एलओपी)[1] एक सॉफ्टवेयर-विकास प्रतिमान है जहां लैंग्वेज एक सॉफ्टवेयर बिल्डिंग ब्लॉक है जिसकी स्थिति ऑब्जेक्ट, मॉड्यूल और घटकों के समान है,[2] और जनरल पर्पस प्रोग्रामिंग लैंग्वेज में समस्याओं को हल करने के अतिरिक्त , प्रोग्रामर पहले समस्या के लिए एक या अधिक डोमेन-स्पेसिफिक लैंग्वेज (डीएसएल) बनाता है, और उन लैंग्वेज ओं में समस्या का समाधान करता है। लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का पहली बार मार्टिन वार्ड के 1994 के पेपर लैंग्वेज ओरिएंटेड प्रोग्रामिंग में विस्तार से वर्णन किया गया था,[1] सॉफ्टवेयर - कॉन्सेप्ट्स एंड टूल्स, खंड 15, संख्या 4, पीपी 147-161, 1994 में प्रकाशित किया गया था।

अवधारणा

लैंग्वेज -ओरिएंटेड प्रोग्रामिंग की अवधारणा उपयोगकर्ता के शब्दों में आवश्यकताओं को पकड़ने के लिए दृष्टिकोण अपनाती है, और फिर उपयोगकर्ता के विवरण के लिए यथासंभव प्रत्यक्ष हो। इसके समरूपता में एक कार्यान्वयन लैंग्वेज बनाने का प्रयास करती है, जिससे आवश्यकताओं और कार्यान्वयन के बीच मैपिंग यथासंभव प्रत्यक्ष हो। इस समरूपता की निकटता का एक माप लैंग्वेज की अतिरेक है, जिसे आवश्यकताओं में एक अकेले परिवर्तन को परिवर्तन करने के लिए आवश्यक संपादन कार्यों की संख्या के रूप में परिभाषित किया गया है। यह प्राथमिकता नहीं मानी जाती कि नई लैंग्वेज को परिवर्तन करने के लिए सबसे अच्छी लैंग्वेज कौन सी है। किंतु , डेवलपर सूचना प्रवाह के विश्लेषण द्वारा बनाए गए विकल्पों में से चुन सकता है - कौन सी जानकारी प्राप्त की जाती है, इसकी संरचना क्या है, कब प्राप्त की जाती है, किससे और इसके साथ क्या किया जाता है।[3]


विकास

रैकेट प्रोग्रामिंग लैंग्वेज और रास्कलएमपीएल को प्रारंभ से ही लैंग्वेज -ओरिएंटेड प्रोग्रामिंग का समर्थन करने के लिए डिज़ाइन किया गया था।[2] अन्य लैंग्वेज कार्यक्षेत्र[4] जेटब्रेन एमपीएस, केर्मेटा, या एक्सटेक्स्ट जैसे उपकरण डीएसएल और लैंग्वेज -ओरिएंटेड प्रोग्रामिंग को डिज़ाइन और कार्यान्वित करने के लिए उपकरण प्रदान करते हैं।Erdweg, Sebastian (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.


बाहरी संबंध