जेटब्रेन्स एमपीएस

From Vigyanwiki
मेटा प्रोग्रामिंग सिस्टम
Stable release
()
Operating systemक्रॉस-प्लेटफॉर्म

JetBrains MPS (मेटा प्रोग्रामिंग सिस्टम) JetBrains द्वारा विकसित एक भाषा कार्यक्षेत्र है। एमपीएस डोमेन-विशिष्ट भाषाओं (डीएसएल) को डिजाइन करने का एक उपकरण है। यह प्रक्षेपात्मक संपादन का उपयोग करता है जो उपयोगकर्ताओं को भाषा पार्सर की सीमाओं को पार करने और तालिकाओं और आरेखों जैसे डीएसएल संपादकों का निर्माण करने की अनुमति देता है।[1]
यह भाषा-उन्मुख प्रोग्रामिंग लागू करता है[citation needed]. एमपीएस ऐसी भाषाओं के लिए भाषा परिभाषा, एक भाषा कार्यक्षेत्र और एकीकृत विकास वातावरण (आईडीई) के लिए एक वातावरण है।[2][3][4]

रचना योग्य भाषाएँ

विभिन्न डोमेन के डेवलपर्स सामान्य प्रयोजन प्रोग्रामिंग भाषाओं में डोमेन-विशिष्ट भाषा एक्सटेंशन से लाभ उठा सकते हैं। उदाहरण के लिए, वित्तीय अनुप्रयोगों के साथ काम करने वाले जावा (प्रोग्रामिंग भाषा) डेवलपर्स को मौद्रिक मूल्यों के अंतर्निहित समर्थन से लाभ हो सकता है। पारंपरिक पाठ-आधारित भाषाएँ पाठ अस्पष्टता समस्याओं के अधीन हैं जो ऐसे एक्सटेंशन को समस्याग्रस्त बनाती हैं।

एमपीएस रचनायोग्य भाषा परिभाषाओं का समर्थन करता है। इसका मतलब है कि भाषाओं को बढ़ाया जा सकता है, और एम्बेड किया जा सकता है, और इन एक्सटेंशन का उपयोग किया जा सकता है, और एमपीएस में एक ही प्रोग्राम में काम करेंगे। उदाहरण के लिए, यदि जावा को संग्रहों के लिए बेहतर सिंटैक्स के साथ बढ़ाया जाता है और फिर तिथियों के लिए बेहतर सिंटैक्स के साथ बढ़ाया जाता है, तो ये एक्सटेंशन एक साथ अच्छी तरह से काम करेंगे।

एमपीएस सीधे अमूर्त सिंटैक्स ट्री के साथ काम करके व्याकरण की अस्पष्टता के मुद्दों को हल करता है। ऐसे पेड़ को संपादित करने के लिए, एक टेक्स्ट-जैसे प्रोजेक्शनल संपादक का उपयोग किया जाता है।[5][6]

पुन: प्रयोज्य भाषा अवसंरचना

एमपीएस एक पुन: प्रयोज्य भाषा अवसंरचना प्रदान करता है जिसे भाषा परिभाषा भाषाओं के साथ कॉन्फ़िगर किया गया है। एमपीएस अनेक आईडीई सेवाएं स्वतः संपादक, कोड समापन, उपयोग खोजना आदि भी प्रदान करता है।

उपस्थित भाषाएँ

  • आधार भाषा - 99% जावा (प्रोग्रामिंग लैंग्वेज) को एमपीएस के साथ पुन: कार्यान्वित किया गया। इस भाषा के अधिक विस्तार (एक्स्टेन्सन) हैं
    • संग्रह भाषा
    • दिनांकित भाषा
    • क्लोजर भाषा
    • नियमित व्यंजक भाषा (रेगुलर एक्सप्रेशन लैंग्वेज)
  • भाषा परिभाषा भाषाएँ - ये भाषाएँ स्वयं के साथ कार्यान्वित की जाती हैं, अर्थात बूटस्ट्रैप

एमपीएस अनुप्रयोग

एमबीईडीडीआर

एमबीईडीडीआर एमपीएस पर आधारित एक एम्बेडेड विकास प्रणाली है। इसमें एम्बेडेड विकास और औपचारिक विधियों के अनुरूप भाषाएँ हैं:[7]

  • कोर सी भाषा
  • अवयव
  • भौतिक इकाइयाँ
  • निर्दिष्ट मशीनें (स्टेट मशीन)

यूट्रैक

अक्टूबर वर्ष 2009 में, जेटब्रेन्स ने यूट्रैक बग ट्रैकिंग सिस्टम प्रस्तुत किया, जो एमपीएस के साथ विकसित प्रथम वाणिज्यिक सॉफ्टवेयर उत्पाद था।[8]

रियलैक्सी संपादक

अप्रैल वर्ष 2010 में, रीयलैक्सी एक्शनस्क्रिप्ट एडिटर बीटा प्रस्तुत किया गया था, जो एमपीएस प्लेटफॉर्म पर आधारित प्रथम वाणिज्यिक आईडीई था।

पीईओपीएल

पीईओपीएल एमपीएस में संपादित सॉफ्टवेयर उत्पाद लाइन अभियान्त्रिकी के लिए एक उपकरण है।[9]

जीडीएफ (गेमिफिकेशन डिजाइन फ्रेमवर्क)

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

जेटब्रेन्स से जीडीएफ के केस स्टडी के अनुसार,[11] एमपीएस को तीन मुख्य कारणों से चुना गया था: पाठ-आधारित डीएसएल प्रदान करने की आवश्यकता, अमूर्त परतों के बीच स्थिरता प्रबंधन को संदेश देने वाले भाषा विस्तार तंत्र की उपलब्धता, और कार्यान्वयन कोड को स्वचालित रूप से प्राप्त करने के लिए जेनरेटर का प्रावधान।

लाइसेंसिंग

एमपीएस स्रोत कोड अपाचे लाइसेंस के अंतर्गत प्रस्तुत किया गया है।

यह भी देखें

संदर्भ

  1. "What is MPS?". अपने स्वयं के डीएसएल डिज़ाइन करें
  2. Martin Fowler. "Language Workbenches: The Killer-App for Domain Specific Languages?".
  3. Martin Fowler. सॉफ्टवेयर.html "इरादतन सॉफ्टवेयर". {{cite web}}: Check |url= value (help)
  4. Fabien Campagne (2014). "The MPS Language Workbench: Volume I."
  5. Srini Penchikala. "जेटब्रेन मेटा प्रोग्रामिंग सिस्टम भाषा उन्मुख प्रोग्रामिंग और डीएसएल का समर्थन करता है".
  6. Sergey Dmitriev. "Language Oriented Programming: The Next Programming Paradigm".
  7. "mbeddr आधिकारिक साइट".
  8. Charles Humble (2009-10-15). "भाषा बदले बिना जावा का विकास".
  9. "PEoPL | Projectional Editing of Product Lines". peopl.de (in English). Retrieved 2017-06-19.
  10. Bucchiarone, Antonio; Cicchetti, Antonio; Marconi, Annapaola (September 2019). "गेमफुल सिस्टम को डिजाइन और तैनात करने के लिए बहु-स्तरीय मॉडलिंग का उपयोग करना". 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS): 34–44. doi:10.1109/MODELS.2019.00-17. ISBN 978-1-7281-2536-7. S2CID 208206029.
  11. "एमपीएस और जीडीएफ केस स्टडी" (PDF).


बाहरी संबंध