DMS Software Reengineering Toolkit
डी. एम. एस. सॉफ्टवेयर रीइंजीनियरिंग टूलकिट बड़े पैमाने पर सॉफ्टवेयर प्रणालियों के लिए स्रोत भाषाओं के मनमाने मिश्रण के लिए कस्टम स्रोत प्रोग्राम विश्लेषण, संशोधन, अनुवाद या सॉफ्टवेयर प्रणालियों के उत्पादन को स्वचालित करने के लिए उपलब्ध प्रोग्राम परिवर्तन उपकरणों का एक स्वामित्व समूह है। डीएमएस मूल रूप से डिजाइन रखरखाव प्रणाली नामक सॉफ्टवेयर के डिजाइन को बनाए रखने के लिए एक सिद्धांत से प्रेरित था। डी. एम. एस. और "डिजाइन रखरखाव प्रणाली" शब्दार्थ डिजाइन के पंजीकृत ट्रेडमार्क हैं। उपयोग डी. एम. एस. का उपयोग डोमेन-विशिष्ट भाषाओं (जैसे कारखाने नियंत्रण के लिए कोड पीढ़ी), परीक्षण कवरेज और प्रोफाइलिंग उपकरण, क्लोन का पता लगाने, भाषा प्रवास उपकरण, सी + + घटक रीइंजीनियरिंग, और सी + + को विश्वसनीय रूप से रीफैक्टरिंग जैसे कठिन विषयों में अनुसंधान के लिए किया गया है। विशेषताएं टूलकिट भाषा व्याकरण को परिभाषित करने के लिए साधन प्रदान करता है और ऐसे पार्सर का उत्पादन करेगा जो स्वचालित रूप से अमूर्त वाक्यविन्यास ट्री (ए. एस. टी.) का निर्माण करते हैं, और मूल या संशोधित ए. एस. टी. को संकलन योग्य स्रोत पाठ में वापस बदलने के लिए सुंदर मुद्रक। पार्स ट्री संग्रहित करते हैं, और सुंदर मुद्रक पुनर्जनन करते हैं, मूल स्रोत कार्यक्रम के बारे में पूर्ण विवरण, जिसमें स्रोत की स्थिति, टिप्पणियां, मूलांक और संख्याओं का प्रारूप आदि शामिल हैं, यह सुनिश्चित करने के लिए कि पुनर्जनन स्रोत पाठ एक प्रोग्रामर के लिए उतना ही पहचानने योग्य है जितना कि मूल पाठ मॉड्यूलो किसी भी लागू परिवर्तनों के लिए। डी. एम. एस. शब्दार्थिक भविष्यवाणी के साथ जी. एल. आर. पार्सिंग तकनीक का उपयोग करता है। यह इसे सभी संदर्भ-मुक्त व्याकरणों के साथ-साथ अधिकांश गैर-संदर्भ-मुक्त भाषा वाक्यविन्यासों को संभालने में सक्षम बनाता है, जैसे कि फोरट्रान, जिसके लिए लेबल द्वारा साझा किए गए निरंतर बयानों के साथ कई डीओ लूपों के मिलान की आवश्यकता होती है ताकि सही तरीके से नेस्टेड लूपों के लिए एएसटी का उत्पादन किया जा सके क्योंकि यह पार्स करता है। डी. एम. एस. में विभिन्न प्रकार की पूर्वनिर्धारित भाषाएँ हैं, जिनमें सी + + 0x, सी #, जावा, पायथन, पी. एच. पी., ई. जी. एल., फोरट्रान, कोबोल, विजुअल बेसिक, वेरिलॉग, वी. एच. डी. एल. और कुछ 20 या अधिक अन्य भाषाओं सहित सी और सी + + की अधिकांश वास्तविक बोलियाँ शामिल हैं। डी. एम. एस. ए. एस. सी. आई. आई., आई. एस. ओ.-8859, यू. टी. एफ.-8, यू. टी. एफ.-16, ई. बी. सी. डी. आई. सी., शिफ्ट-जे. आई. एस. और विभिन्न प्रकार के माइक्रोसॉफ्ट कैरेक्टर एन्कोडिंग को संभाल सकता है। डीएमएस एएसटी पर कस्टम विश्लेषण की गणना के लिए विशेषता व्याकरण मूल्यांकनकर्ता प्रदान करता है, जैसे कि मेट्रिक्स, और इसमें प्रतीक तालिका निर्माण के लिए समर्थन शामिल है। अन्य कार्यक्रम तथ्यों को अंतर्निहित नियंत्रण-और डेटा-प्रवाह विश्लेषण इंजनों, स्थानीय और वैश्विक सूचक विश्लेषण, संपूर्ण-कार्यक्रम कॉल ग्राफ निष्कर्षण और अमूर्त व्याख्या द्वारा प्रतीकात्मक सीमा विश्लेषण द्वारा निकाला जा सकता है। डी. एम. एस. को एक समानांतर प्रोग्रामिंग भाषा, पी. ए. आर. एल. ए. एन. एस. ई. में लागू किया जाता है, जो बड़े विश्लेषणों और रूपांतरणों को गति देने के लिए सममित बहुसंसाधन का उपयोग करने की अनुमति देता है। ए. एस. टी. में परिवर्तनों को डी. एम. एस. की नियम विनिर्देशन भाषा (आर. एस. एल.) का उपयोग करके, किसी भी निकाले गए कार्यक्रम तथ्यों द्वारा वातानुकूलित सतह-वाक्यविन्यास का उपयोग करके, पार्लेन्स में कोडित प्रक्रियात्मक विधियों और पुनर्लेखन नियमों के रूप में कोडित स्रोत-से-स्रोत वृक्ष परिवर्तन दोनों द्वारा पूरा किया जा सकता है। आर. एस. एल. का समर्थन करने वाला पुनर्लेखन नियम इंजन सहयोगी और परिवर्तनीय नियमों को संभालता है। सी के लिए एक जटिल स्थिति को प्रतिस्थापित करने के लिए एक पुनर्लेखन नियम? : प्रचालक को इस प्रकार लिखा जाएः नियम सरलीकृत _ सशर्त _ कार्य (v: लेफ्ट _ हैंड _ साइड, e1: अभिव्यक्ति, e2: अभिव्यक्ति, e3: अभिव्यक्ति): कथन-> कथन = "यदि (\e1) \v = \e2; अन्यथा \v = e3";-> "\v = \e1? \e2: \e3" यदि कोई _ साइड _ प्रभाव (v) नहीं है; नियमों को फिर से लिखें, उदाहरण के लिए। कंडीशनल असाइनमेंट को सरल बनाएँ। प्रत्येक नियम में एक "मैच दिस" और "उस द्वारा प्रतिस्थापित" पैटर्न जोड़ी होती है जो-> से अलग होती है, हमारे उदाहरण में, पठनीयता के लिए अलग-अलग पंक्तियों पर। पैटर्न भाषा वाक्यविन्यास श्रेणियों के अनुरूप होना चाहिए; इस मामले में, दोनों पैटर्न वाक्यविन्यास श्रेणी कथन के होने चाहिए और पैटर्न के साथ सहानुभूति में-> द्वारा अलग किए जाने चाहिए। लक्ष्य भाषा (जैसे, सी) सतह वाक्यविन्यास को मेटा-उद्धरणों के अंदर कूटबद्ध किया जाता है, ताकि लक्ष्य भाषा से पुनर्लेखन-नियम वाक्यविन्यास को अलग किया जा सके। मेटा-उद्धरणों के अंदर बैकस्लैश डोमेन पलायन का प्रतिनिधित्व करते हैं, पैटर्न मेटा चर (जैसे, \v, \e1, \e2) को इंगित करने के लिए जो हस्ताक्षर रेखा में मेटावेरेबल घोषणा के अनुरूप किसी भी भाषा निर्माण से मेल खाते हैं, जैसे, e1 वाक्यात्मक श्रेणी का होना चाहिएः (कोई भी) अभिव्यक्ति। यदि मैच पैटर्न में एक मेटावेरेबल का कई बार उल्लेख किया गया है, तो इसे समान सबट्री से मेल खाना चाहिए; इस उदाहरण में मैच पैटर्न में दोनों असाइनमेंट में समान रूप से आकार वाला वी होना चाहिए। प्रतिस्थापन पैटर्न में मेटावेरिएबल्स को बाईं ओर से संबंधित मिलानों द्वारा प्रतिस्थापित किया जाता है। एक सशर्त खंड यदि एक अतिरिक्त शर्त प्रदान करता है जिसे नियम को लागू करने के लिए पूरा किया जाना चाहिए, उदाहरण के लिए, कि मिलान किए गए मेटावेरेबल वी, एक मनमाना बाएं हाथ का पक्ष होने के कारण, एक दुष्प्रभाव नहीं होना चाहिए (उदाहरण के लिए, एक [i + +] के रूप में नहीं हो सकता है; कोई _ साइड _ प्रभाव विधेय अन्य डीएमएस तंत्र के साथ निर्मित एक विश्लेषक द्वारा परिभाषित किया जाता है)। कोड पर एक जटिल परिवर्तन प्राप्त करना कई नियम प्रदान करके पूरा किया जाता है जो वांछित प्रभाव प्राप्त करने के लिए सहयोग करते हैं। नियम सेट PARLANSE में कोडित मेटाप्रोग्राम द्वारा कार्यक्रम के कुछ हिस्सों पर केंद्रित है। परिभाषित और लागू भाषा परिभाषा और स्रोत-से-स्रोत परिवर्तन नियमों का एक पूरा उदाहरण हाई स्कूल बीजगणित और एक डोमेन-विशिष्ट भाषा के रूप में कुछ कलन का उपयोग करके दिखाया गया है। संदर्भ बाहरी लिंक डी. एम. एस. सॉफ्टवेयर रीइंजीनियरिंग टूलकिट मुख्य वेब पृष्ठ स्थैतिक कार्यक्रम विश्लेषण उपकरण कार्यक्रम परिवर्तन उपकरण कंप्यूटर सहायता प्राप्त सॉफ्टवेयर इंजीनियरिंग उपकरण भाषा कार्यपीठ