DMS Software Reengineering Toolkit
ڈی ایم ایس سافٹ ویئر ری انجینئرنگ ٹول کٹ پروگرام ٹرانسفارمیشن ٹولز کا ایک ملکیتی سیٹ ہے جو بڑے پیمانے کے سافٹ ویئر سسٹمز کے لیے سورس زبانوں کے من مانی مرکب کے لیے کسٹم سورس پروگرام تجزیہ، ترمیم، ترجمہ یا سافٹ ویئر سسٹمز کی نسل کو خودکار بنانے کے لیے دستیاب ہے۔ ڈی ایم ایس اصل میں ڈیزائن مینٹیننس سسٹمز نامی سافٹ ویئر کے ڈیزائن کو برقرار رکھنے کے لیے ایک نظریہ سے متاثر تھا۔ ڈی ایم ایس اور "ڈیزائن مینٹیننس سسٹم" سیمنٹک ڈیزائن کے رجسٹرڈ ٹریڈ مارک ہیں۔ استعمال ڈی ایم ایس کا استعمال ڈومین مخصوص زبانوں (جیسے فیکٹری کنٹرول کے لیے کوڈ جنریشن)، ٹیسٹ کوریج اور پروفائلنگ ٹولز، کلون کا پتہ لگانے، زبان کی منتقلی کے ٹولز، سی + + اجزاء کی ری انجینئرنگ، اور مشکل موضوعات جیسے کہ سی + + کو قابل اعتماد طریقے سے ری فیکٹرنگ میں تحقیق کے لیے کیا گیا ہے۔ خصوصیات ٹول کٹ زبان کے گرامر کی وضاحت کے لیے ذرائع فراہم کرتا ہے اور ایسے تجزیہ کار تیار کرے گا جو خود بخود تجریدی نحو درخت (اے ایس ٹی) بناتے ہیں، اور اصل یا ترمیم شدہ اے ایس ٹی کو دوبارہ مرتب کرنے کے قابل ماخذ متن میں تبدیل کرنے کے لیے خوبصورت پرنٹر۔ پارس کے درخت اصل ماخذ پروگرام کے بارے میں مکمل تفصیل حاصل کرتے ہیں، جس میں ماخذ کی پوزیشن، تبصرے، ریڈکس اور نمبروں کی شکل وغیرہ شامل ہیں، تاکہ یہ یقینی بنایا جا سکے کہ دوبارہ تخلیق شدہ ماخذ متن پروگرامر کے لیے اتنا ہی قابل شناخت ہے جتنا کہ کسی بھی قابل اطلاق تبدیلی کے لیے اصل متن ماڈیولو۔ ڈی ایم ایس سیمنٹک پیشن گوئی کے ساتھ جی ایل آر تجزیہ ٹیکنالوجی کا استعمال کرتا ہے۔ یہ اسے تمام سیاق و سباق سے پاک گرائمرز کے ساتھ ساتھ زیادہ تر غیر سیاق و سباق سے پاک زبان کے نحو کو سنبھالنے کے قابل بناتا ہے، جیسے کہ فورٹرن، جس میں لیبل کے ذریعے مشترکہ جاری بیانات کے ساتھ متعدد ڈو لوپس کے ملاپ کی ضرورت ہوتی ہے تاکہ درست طریقے سے نیسٹڈ لوپس کے لیے اے ایس ٹی تیار کیے جا سکیں کیونکہ یہ تجزیہ کرتا ہے۔ ڈی ایم ایس میں مختلف قسم کی پہلے سے طے شدہ زبانیں ہیں، جو سی اور سی + + کی زیادہ تر حقیقی بولیوں کا احاطہ کرتی ہیں جن میں سی + + 0x، سی #، جاوا، ازگر، پی ایچ پی، ای جی ایل، فورٹرن، کوبول، بصری بنیادی، ویرلوگ، وی ایچ ڈی ایل اور کچھ 20 یا اس سے زیادہ دیگر زبانیں شامل ہیں۔ ڈی ایم ایس اے ایس سی آئی آئی، آئی ایس او-8859، یو ٹی ایف-8، یو ٹی ایف-16، ای بی سی ڈی آئی سی، شفٹ-جے آئی ایس اور مختلف قسم کے مائیکروسافٹ کریکٹر انکوڈنگ کو سنبھال سکتا ہے۔ ڈی ایم ایس اے ایس ٹی پر اپنی مرضی کے مطابق تجزیے کی کمپیوٹنگ کے لیے ایٹریبیوٹ گرامر ایویلیوایٹرز فراہم کرتا ہے، جیسے کہ میٹرکس، اور اس میں سمبل ٹیبل کی تعمیر کے لیے سپورٹ شامل ہے۔ پروگرام کے دیگر حقائق بلٹ ان کنٹرول اور ڈیٹا فلو تجزیہ انجن، مقامی اور عالمی پوائنٹر تجزیہ، پورے پروگرام کال گراف نکالنے، اور تجریدی تشریح کے ذریعے علامتی رینج تجزیہ کے ذریعے نکالے جا سکتے ہیں۔ ڈی ایم ایس کو ایک متوازی پروگرامنگ زبان، پارلنس میں لاگو کیا جاتا ہے، جو بڑے تجزیے اور تبادلوں کو تیز کرنے کے لیے سمیٹرک ملٹی پروسیسنگ کے استعمال کی اجازت دیتا ہے۔ اے ایس ٹی میں تبدیلیاں دوبارہ لکھنا ڈی ایم ایس کی رول اسپیسیفیکیشن لینگویج (آر ایس ایل) کا استعمال کرتے ہوئے پارلنس میں کوڈ شدہ طریقہ کار کے طریقوں اور کسی بھی نکالے ہوئے پروگرام کے حقائق کے ذریعہ مشروط سطح-نحو کا استعمال کرتے ہوئے دوبارہ لکھنے کے قواعد کے طور پر کوڈ شدہ سورس ٹو سورس ٹری ٹرانسفارمیشن دونوں کے ذریعے پورا کیا جا سکتا ہے۔ آر ایس ایل کی حمایت کرنے والا ری رائٹ رول انجن ایسوسی ایٹیو اور کمیونیٹیٹو قوانین کو سنبھالتا ہے۔ ایک پیچیدہ حالت کو تبدیل کرنے کے لیے C کے لیے دوبارہ لکھنے کا قاعدہ؟ : آپریٹر کو اس طرح لکھا جائے: قاعدہ آسان _ مشروط _ تفویض (v: لیفٹ _ ہینڈ _ سائیڈ، e1: اظہار، e2: اظہار، e3: اظہار): بیان-> بیان = "اگر (\e1) \v = \e2 ؛ ورنہ \v = e3" ؛-> "\v = \e1? \e2: \e3" اگر کوئی _ سائیڈ _ ایفیکٹس (v) نہیں ہے ؛ قواعد کو دوبارہ لکھیں، مثال کے طور پر نام ہیں۔ _ مشروط _ تفویض کو آسان بنائیں۔ ہر اصول میں ایک "میچ اس" اور "اس سے تبدیل کریں" پیٹرن جوڑی ہوتی ہے جو-> سے الگ ہوتی ہے، ہماری مثال میں، پڑھنے کے قابل ہونے کے لیے الگ الگ لائنوں پر۔ نمونوں کو زبان کے نحو کے زمرے سے مطابقت رکھنا چاہیے۔ اس معاملے میں، دونوں نمونوں کو نحو کے زمرے کے بیان کا ہونا چاہیے جو نمونوں کے ساتھ ہمدردی میں بھی-> سے الگ ہونا چاہیے۔ ٹارگٹ لینگویج (مثال کے طور پر، سی) سرفیس نحو کو میٹا کوٹس کے اندر کوڈ کیا جاتا ہے، تاکہ ری رائٹ رول نحو کو ٹارگٹ لینگویج سے الگ کیا جا سکے۔ میٹا کوٹس کے اندر بیک سلیشز ڈومین کے فرار کی نمائندگی کرتے ہیں، پیٹرن میٹا متغیرات (مثال کے طور پر، \v، \e1، \e2) کی نشاندہی کرنے کے لیے جو دستخطی لائن میں میٹا ویریبل اعلامیے سے مطابقت رکھنے والی کسی بھی زبان کی تعمیر سے میل کھاتے ہیں، مثال کے طور پر، e1 نحو زمرے کا ہونا چاہیے: (کوئی بھی) اظہار۔ اگر میچ پیٹرن میں ایک میٹاواریبل کا متعدد بار ذکر کیا گیا ہے، تو اسے ایک جیسے ذیلی درختوں سے ملنا چاہیے۔ اس مثال میں میچ پیٹرن میں دونوں اسائنمنٹس میں ایک جیسی شکل کا v ہونا چاہیے۔ متبادل پیٹرن میں میٹاویریبلز کو بائیں طرف سے متعلقہ مماثلتوں سے تبدیل کیا جاتا ہے۔ ایک مشروط شق اگر ایک اضافی شرط فراہم کرتی ہے جسے اصول کے اطلاق کے لیے پورا کرنا ضروری ہے، مثال کے طور پر، کہ مماثل میٹاواریبل v، ایک من مانی بائیں ہاتھ کی طرف ہونے کی وجہ سے، اس کا کوئی ضمنی اثر نہیں ہونا چاہیے (مثال کے طور پر، [i + +] کی شکل کا نہیں ہو سکتا ؛ نو _ سائیڈ _ ایفیکٹس پریڈیکیٹ کی وضاحت دوسرے DMS میکانزم کے ساتھ بنائے گئے تجزیہ کار کے ذریعے کی جاتی ہے)۔ کوڈ پر ایک پیچیدہ تبدیلی حاصل کرنا مطلوبہ اثر حاصل کرنے کے لیے تعاون کرنے والے متعدد قواعد فراہم کر کے پورا کیا جاتا ہے۔ رول سیٹ پارلنس میں کوڈ شدہ میٹاپروگرام کے ذریعے پروگرام کے حصوں پر مرکوز ہے۔ زبان کی تعریف اور ماخذ سے ماخذ کی تبدیلی کے اصولوں کی ایک مکمل مثال جس کی وضاحت اور اطلاق ہائی اسکول الجبرا اور تھوڑا سا کیلکولس کو ڈومین مخصوص زبان کے طور پر استعمال کرتے ہوئے دکھایا گیا ہے۔ حوالہ جات بیرونی روابط ڈی ایم ایس سافٹ ویئر ری انجینئرنگ ٹول کٹ مرکزی ویب پیج جامد پروگرام تجزیہ ٹولز پروگرام تبدیلی ٹولز کمپیوٹر ایڈیڈ سافٹ ویئر انجینئرنگ ٹولز زبان ورک بینچ