DMS Software Reengineering Toolkit
ડી. એમ. એસ. સોફ્ટવેર રીઇન્જિનિયરિંગ ટૂલકિટ એ મોટા પાયે સોફ્ટવેર સિસ્ટમો માટે સ્રોત ભાષાઓના મનસ્વી મિશ્રણ માટે કસ્ટમ સ્રોત પ્રોગ્રામ વિશ્લેષણ, ફેરફાર, અનુવાદ અથવા સોફ્ટવેર સિસ્ટમોની પેઢીને સ્વચાલિત કરવા માટે ઉપલબ્ધ પ્રોગ્રામ પરિવર્તન સાધનોનો માલિકી સમૂહ છે. ડી. એમ. એસ. મૂળરૂપે ડિઝાઇન મેન્ટેનન્સ સિસ્ટમ્સ તરીકે ઓળખાતા સોફ્ટવેરની ડિઝાઇન જાળવવા માટેના સિદ્ધાંત દ્વારા પ્રેરિત હતું. ડી. એમ. એસ. અને "ડિઝાઇન મેન્ટેનન્સ સિસ્ટમ" એ સિમેન્ટીક ડિઝાઇનના નોંધાયેલા ટ્રેડમાર્ક છે. ઉપયોગ ડી. એમ. એસ. નો ઉપયોગ ડોમેન-વિશિષ્ટ ભાષાઓ (જેમ કે ફેક્ટરી નિયંત્રણ માટે કોડ જનરેશન), પરીક્ષણ કવરેજ અને પ્રોફાઇલિંગ ટૂલ્સ, ક્લોન ડિટેક્શન, લેંગ્વેજ માઇગ્રેશન ટૂલ્સ, સી + + ઘટક રીઇન્જિનિયરિંગ, અને સી + + ને વિશ્વસનીય રીતે રીફેક્ટરિંગ જેવા મુશ્કેલ વિષયોમાં સંશોધન માટે કરવામાં આવે છે. લક્ષણો ટૂલકિટ ભાષાના વ્યાકરણને વ્યાખ્યાયિત કરવા માટેના માધ્યમો પૂરા પાડે છે અને એબ્સ્ટ્રેક્ટ વાક્યરચના વૃક્ષો (એ. એસ. ટી.) ને આપમેળે બનાવતા પાર્સર્સ અને મૂળ અથવા સુધારેલા એ. એસ. ટી. ને કમ્પાઇલ કરી શકાય તેવા સ્રોત લખાણમાં રૂપાંતરિત કરવા માટે સુંદર પ્રિન્ટર્સ ઉત્પન્ન કરશે. પાર્સ ટ્રીઝ કેપ્ચર કરે છે, અને પ્રીટિપ્રિન્ટર્સ સ્રોતની સ્થિતિ, ટિપ્પણીઓ, રેડિક્સ અને સંખ્યાઓનું બંધારણ વગેરે સહિત મૂળ સ્રોત પ્રોગ્રામ વિશે સંપૂર્ણ વિગતવાર પુનઃ ઉત્પન્ન કરે છે, જેથી પુનઃઉત્પાદિત સ્રોત લખાણ પ્રોગ્રામર માટે કોઈપણ લાગુ કરેલા પરિવર્તન માટે મૂળ લખાણ મોડ્યુલો જેટલું જ ઓળખી શકાય તે સુનિશ્ચિત કરી શકાય. ડી. એમ. એસ. સિમેન્ટીક આગાહીઓ સાથે જી. એલ. આર. પદચ્છેદન તકનીકનો ઉપયોગ કરે છે. આ તેને તમામ સંદર્ભ-મુક્ત વ્યાકરણ તેમજ મોટાભાગના બિન-સંદર્ભ-મુક્ત ભાષાના વાક્યરચનાને હેન્ડલ કરવા માટે સક્ષમ બનાવે છે, જેમ કે ફોરટ્રાન, જેને યોગ્ય રીતે નેસ્ટેડ લૂપ્સ માટે એએસટી ઉત્પન્ન કરવા માટે લેબલ દ્વારા વહેંચાયેલ ચાલુ નિવેદનો સાથે બહુવિધ ડીઓ લૂપ્સના મેળની જરૂર પડે છે. ડી. એમ. એસ. માં વિવિધ પૂર્વવ્યાખ્યાયિત ભાષાઓ છે, જેમાં સી + + 0x, સી #, જાવા, પાયથોન, પી. એચ. પી., ઇ. જી. એલ., ફોરટ્રાન, કોબોલ, વિઝ્યુઅલ બેઝિક, વેરિલોગ, વી. એચ. ડી. એલ. અને કેટલીક 20 કે તેથી વધુ અન્ય ભાષાઓ સહિત સી અને સી + + ની મોટાભાગની વાસ્તવિક બોલીઓને આવરી લેવામાં આવી છે. DMS એ ASCII, ISO-8859, UTF-8, UTF-16, EBCDIC, શિફ્ટ-JIS અને વિવિધ માઈક્રોસોફ્ટ કેરેક્ટર એન્કોડિંગને સંભાળી શકે છે. ડી. એમ. એસ. એ મેટ્રિક્સ જેવા એ. એસ. ટી. પર કસ્ટમ વિશ્લેષણની ગણતરી કરવા માટે લક્ષણ વ્યાકરણ મૂલ્યાંકનકારો પૂરા પાડે છે અને તેમાં પ્રતીક કોષ્ટક નિર્માણ માટે સમર્થનનો સમાવેશ થાય છે. અન્ય કાર્યક્રમની હકીકતો બિલ્ટ-ઇન કંટ્રોલ-અને ડેટા-ફ્લો વિશ્લેષણ એન્જિન, સ્થાનિક અને વૈશ્વિક નિર્દેશક વિશ્લેષણ, સંપૂર્ણ-પ્રોગ્રામ કોલ ગ્રાફ નિષ્કર્ષણ અને અમૂર્ત અર્થઘટન દ્વારા પ્રતીકાત્મક શ્રેણી વિશ્લેષણ દ્વારા મેળવી શકાય છે. ડી. એમ. એસ. ને સમાંતર પ્રોગ્રામિંગ ભાષા, પાર્લાન્સમાં લાગુ કરવામાં આવે છે, જે મોટા વિશ્લેષણ અને રૂપાંતરણોને ઝડપી બનાવવા માટે સપ્રમાણ બહુ-પ્રક્રિયાનો ઉપયોગ કરવાની મંજૂરી આપે છે. એ. એસ. ટી. માં ફેરફારો ડી. એમ. એસ. ની નિયમ સ્પષ્ટીકરણ ભાષા (આર. એસ. એલ.) નો ઉપયોગ કરીને કોઈપણ કાઢેલા પ્રોગ્રામ તથ્યો દ્વારા શરતી સપાટી-વાક્યરચનાનો ઉપયોગ કરીને ફરીથી લખવાના નિયમો તરીકે કોડેડ PARLANSE અને સ્રોત-થી-સ્રોત વૃક્ષ પરિવર્તનમાં કોડેડ પ્રક્રિયાગત પદ્ધતિઓ બંને દ્વારા પૂર્ણ કરી શકાય છે. આર. એસ. એલ. ને ટેકો આપતું પુનર્લેખન નિયમ એન્જિન સહયોગી અને પરિવર્તનીય નિયમોને સંભાળે છે. જટિલ સ્થિતિને બદલવા માટે C માટે ફરીથી લખવાનો નિયમ? : સંચાલકને આ રીતે લખવું જોઈએઃ નિયમ સરળ _ શરતી _ સોંપણી (v: ડાબી _ બાજુ, e1: અભિવ્યક્તિ, e2: અભિવ્યક્તિ, e3: અભિવ્યક્તિ): નિવેદન-> નિવેદન = "જો (\e1) \v = \e2; અન્યથા \v = e3";-> "\v = \e1? \e2: \e3" જો કોઈ _ બાજુ _ અસરો (v) ન હોય તો; નિયમોને ફરીથી લખો, દા. ત. શરતી સોંપણીને સરળ બનાવો. દરેક નિયમમાં "આને મેચ કરો" અને "તે દ્વારા બદલો" પેટર્ન જોડી છે જે-> દ્વારા અલગ પડે છે, અમારા ઉદાહરણમાં, વાંચનીયતા માટે અલગ રેખાઓ પર. પેટર્ન ભાષા વાક્યરચના વર્ગોને અનુરૂપ હોવી જોઈએ; આ કિસ્સામાં, બંને પેટર્ન વાક્યરચના શ્રેણીના નિવેદનની હોવી જોઈએ અને પેટર્ન સાથે સહાનુભૂતિમાં-> દ્વારા અલગ હોવી જોઈએ. લક્ષ્ય ભાષા (દા. ત., સી) સપાટી વાક્યરચના મેટા-ક્વોટ્સની અંદર કોડેડ કરવામાં આવે છે, જેથી લક્ષ્ય ભાષામાંથી ફરીથી લખાણ-નિયમ વાક્યરચના અલગ પડે. મેટા-ક્વોટ્સની અંદર બેકસ્લેશ ડોમેન એસ્કેપનું પ્રતિનિધિત્વ કરે છે, પેટર્ન મેટા વેરિયેબલ્સ (દા. ત., \v, \e1, \e2) સૂચવવા માટે કે જે સહી રેખામાં મેટાવેરીબલ ઘોષણાને અનુરૂપ કોઈપણ ભાષાની રચના સાથે મેળ ખાય છે, દા. ત., e1 વાક્યરચના શ્રેણીની હોવી જોઈએઃ (કોઈપણ) અભિવ્યક્તિ. જો મેચ પેટર્નમાં મેટાવેરીબલનો ઘણી વખત ઉલ્લેખ કરવામાં આવ્યો હોય, તો તે સમાન પેટા વૃક્ષો સાથે મેળ ખાતો હોવો જોઈએ; આ ઉદાહરણમાં મેચ પેટર્નમાં બંને સોંપણીઓમાં સમાન આકારના વી હોવા જોઈએ. રિપ્લેસમેન્ટ પેટર્નમાં મેટાવેરીબલ્સ ડાબી બાજુથી અનુરૂપ મેચો દ્વારા બદલવામાં આવે છે. શરતી કલમ જો એક વધારાની શરત પૂરી પાડે છે જે નિયમ લાગુ કરવા માટે પૂરી કરવી આવશ્યક છે, દા. ત., કે મેળ ખાતી મેટાવેરીબલ વી, એક મનસ્વી ડાબી બાજુ હોવાથી, તેની આડઅસર હોવી જોઈએ નહીં (દા. ત., તે [i + +] ના સ્વરૂપની ન હોઈ શકે; નો સાઇડ ઇફેક્ટ્સ વિધેય અન્ય DMS પદ્ધતિઓ સાથે બનેલા વિશ્લેષક દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે). કોડ પર જટિલ પરિવર્તન હાંસલ કરવું એ સંખ્યાબંધ નિયમો પ્રદાન કરીને પરિપૂર્ણ થાય છે જે ઇચ્છિત અસર હાંસલ કરવા માટે સહકાર આપે છે. નિયમ સમૂહ PARLANSE માં કોડેડ મેટાપ્રોગ્રામ દ્વારા કાર્યક્રમના ભાગો પર કેન્દ્રિત છે. વ્યાખ્યાયિત અને લાગુ કરાયેલ ભાષાની વ્યાખ્યા અને સ્રોત-થી-સ્રોત પરિવર્તન નિયમોનું સંપૂર્ણ ઉદાહરણ ઉચ્ચ શાળા બીજગણિત અને ડોમેન-વિશિષ્ટ ભાષા તરીકે થોડુંક કલનનો ઉપયોગ કરીને દર્શાવવામાં આવ્યું છે. સંદર્ભો બાહ્ય કડીઓ DMS સોફ્ટવેર રિઇન્જિનિયરિંગ ટૂલકિટ મુખ્ય વેબ પાનું સ્ટેટિક પ્રોગ્રામ એનાલિસિસ ટૂલ્સ પ્રોગ્રામ ટ્રાન્સફોર્મેશન ટૂલ્સ કમ્પ્યુટર-સહાયિત સોફ્ટવેર એન્જિનિયરિંગ ટૂલ્સ લેંગ્વેજ વર્કબેન્ચ