DMS бағдарламалық жасақтамасын қайта құруға арналған жинақ - DMS Software Reengineering Toolkit

DMS бағдарламалық жасақтамасын қайта құруға арналған жинақ
ӘзірлеушілерСемантикалық дизайн
Лицензияменшіктік
Веб-сайтwww.semanticdesigns.com/ Өнімдер/ DMS/ DMSToolkit.html

The DMS бағдарламалық жасақтамасын қайта құруға арналған жинақ[1] меншіктегі жиынтығы болып табылады бағдарламаны түрлендіру қолданбалы бағдарламалық жасақтаманы пайдалануды талдауды, модификациялауды, аударуды немесе кең ауқымды бағдарламалық жасақтама жүйелеріне арналған бастапқы тілдердің ерікті қоспаларына арналған бағдарламалық жасақтаманы генерациялауға арналған құралдар.

Пайдалану

DMS әр түрлі практикалық құралдарды іске асыру үшін қолданылған арнайы домендерге арналған тілдер (мысалы, зауыттық бақылауға арналған кодты құру), тестілеуді қамту[2] және профильдеу құралдары, клонды анықтау,[3] тілдік көші-қон құралдары, C ++ компоненттерін қайта құру.,[4] және C ++ рефакторизациясы сияқты қиын тақырыптарды зерттеу үшін.[5]

Құралдар жинағы тілдік грамматиканы анықтауға арналған құралдармен қамтамасыз етілген талдаушылар автоматты түрде құрастырады синтаксистік ағаштар (AST) және әдемі іздер түпнұсқа немесе өзгертілген AST-ді қайтадан жиналатын бастапқы мәтінге айналдыру. Бағдарлама жасаушыға түпнұсқа мәтін модулі сияқты танымал болатындығына көз жеткізу үшін талдауға арналған ағаштар түсіреді және әдемі басып шығарғыштар бастапқы бастапқы бағдарлама туралы толық мәліметтерді, соның ішінде бастапқы позицияны, түсініктемелерді, сандардың радиусын және форматын және т.б. қосады. кез келген қолданылатын түрлендірулер.

Бағдарламаны талдау мен трансформациялаудың көптеген құралдары шектеулі ASCII немесе Батыс Еуропалық кейіпкерлер жиынтығы ISO-8859; DMS оларды басқара алады UTF-8, UTF-16, EBCDIC, Shift-JIS және әр түрлі Microsoft таңбалық кодтаулары.

DMS қолданады GLR барлық практикалық контекстсіз грамматикаларды басқаруға мүмкіндік беретін технологияны талдау. Семантикалық предикаттар бұл мүмкіндікті контекстсіз қызықты грамматикаларға дейін кеңейтеді (Фортран бірнеше DO циклдарының ортақ CONTINUE операторларымен жапсырмамен сәйкес келуін талап етеді; Семантикалық предикаттары бар GLR DMS Fortran талдаушысына дұрыс кірістірілген циклдар үшін AST шығаруға мүмкіндік береді).

DMS ұсынады атрибуттық грамматика өлшеуіштер сияқты арнайы тапсырыс бойынша талдауды есептеу үшін арнайы бағалаушылар символдар кестесі құрылыс. Бағдарламаның басқа фактілерін кіріктірілген бақылау және деректер көмегімен алуға болады. ағынды талдау қозғалтқыштар, жергілікті және ғаламдық көрсеткішті талдау, бүкіл бағдарлама шақыру графигі бойынша экстракция және символикалық ауқымды талдау дерексіз түсіндіру.

AST-ге өзгертулер PARLANSE кодталған процедуралық әдістермен де, «қайнар көзден-ағашқа» түрлендірумен де өзгертілуі мүмкін. ережелерді қайта жазу кез-келген алынған бағдарламалық фактілермен шартталған жер үсті-синтаксисті қолдану, DMS ережелерін спецификациялау тілін (RSL) қолдану. RSL қолдайтын ереже қозғалтқышын қайта жазу ассоциативті және коммутативті ережелерді басқарады. С-ға күрделі шартты -мен ауыстыру үшін қайта жазу ережесі ?: оператор келесі түрде жазылады:

   жеңілдетілген_шартты-тағайындау ережесі (v: сол жақ_қол_сана, e1: өрнек, e2: өрнек, e3: өрнек)
        : мәлімдеме-> мәлімдеме
   = «if (e1) v = e2; else v = e3;»
   -> «v = e1? e2: e3;»
   if_side_effects (v);

Қайта жазу ережелардың аттары бар, мысалы. жеңілдету_шартты-тағайындау. Әр ережеде а бар «осыған сәйкес» және «осымен ауыстыру» өрнек жұбы ->, біздің мысалда оқуға арналған бөлек жолдарда. Үлгілер тілдік синтаксис категорияларына сәйкес келуі керек; бұл жағдайда екі үлгі де синтаксистік санатта болуы керек мәлімдеме өрнектеріне жанашырлықпен бөлінген ->. Мақсатты тіл (мысалы, C) беттік синтаксис мета-тырнақшалардың ішінде кодталған ", қайта жазу ережесінің синтаксисін аударма тілінен бөліп алу. Мета-тырнақшалардың ішіндегі кері сызықтар мета айнымалыларды көрсету үшін домендік қашуды білдіреді (мысалы, v, e1, e2) қолтаңба жолындағы метаболынды декларацияға сәйкес келетін кез-келген тілдік құрылымға сәйкес келеді, мысалы, e1 синтаксистік санатта болуы керек: (кез-келген) өрнек. Егер метабөлім бірнеше рет аталған болса матч өрнек, ол бірдей кіші ағаштарға сәйкес келуі керек; бірдей пішінді v осы мысалдағы матч үлгісіндегі екі тағайындауда да болуы керек. Метабөлшектер ауыстыру өрнек сол жағынан сәйкес матчтармен ауыстырылады. Шартты сөйлем егер ережені қолдану үшін орындалуы керек қосымша шартты ұсынады, мысалы, сәйкес келетін метамерзім v, ерікті сол жақ бола отырып, жанама әсер етпеуі керек (мысалы, формада болуы мүмкін емес) a [i ++]; The жоқ_жаңа_эффекттер предикатты басқа DMS механизмдерімен құрастырылған анализатор анықтайды).

Код бойынша күрделі түрлендіруге қол жеткізу қажетті нәтижеге жету үшін ынтымақтастықта болатын бірнеше ережелерді қамтамасыз ету арқылы жүзеге асырылады. Ережелер жиынтығы PARLANSE кодталған метапрограммалар арқылы бағдарламаның бөліктеріне бағытталған.

A толық мысал орта мектептің көмегімен тілдің анықтамасы мен анықталған және қолданылатын «көзден-дерекке» түрлендіру ережелері көрсетілген алгебра және біраз есептеу доменге тән тіл ретінде.

DMS-те көптеген нақты диалектілерді қамтитын әр түрлі алдын-ала анықталған тілдік ұштар бар C және C ++ оның ішінде C ++ 0x, C #, Java, Python, PHP, EGL, Фортран, COBOL, Visual Basic, Верилог, VHDL 20 немесе одан да көп басқа тілдер. Алдын ала анықталған тілдер тапсырыс берушілерге өңделетін тілдердің егжей-тегжейлеріне емес, олардың реинжинирингтік міндеттеріне бірден назар аударуға мүмкіндік береді.

DMS-ті енгізу әдеттен тыс параллель бағдарламалау қолданатын тіл, PARLANSE симметриялы мультипроцессорлар тауарға қол жетімді жұмыс станциялары. Бұл DMS-ке үлкен жүйелік талдаулар мен түрлендірулерге жылдам жауаптар беруге мүмкіндік береді.

DMS бастапқыда бағдарламалық жасақтаманың дизайнын қолдау теориясымен негізделген Техникалық қызмет көрсету жүйелері.[6]

DMS және «Design Maintenance System» - бұл Semantic Designs тіркелген сауда белгілері.

Пайдаланылған әдебиеттер

  1. ^ DMS: практикалық масштабталатын бағдарламалық жасақтама эволюциясы үшін бағдарламалық түрлендіру. Бағдарламалық жасақтама бойынша халықаралық конференция материалдары 2004 ж Қайта басу
  2. ^ Еркін тілдерге арналған саланы қамту оңай болды
  3. ^ "Синтаксистік дерексіз ағаштар көмегімен клонды анықтау. Бағдарламалық қамтамасыздандыру жөніндегі халықаралық конференция материалдары 1998 ж. ». Архивтелген түпнұсқа 2012-10-10. Алынған 2010-11-06.
  4. ^ «Кейс-стади: бағдарламаны автоматты түрлендіру арқылы C ++ компоненттерінің модельдерін қайта құру». дои:10.1016 / j.infsof.2006.10.012. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  5. ^ Шағын бизнесті инновациялық зерттеу (DoE): Реактор ++
  6. ^ Техникалық қызмет көрсету жүйелері. ACM байланысы 1992 жҚайта басу

Сыртқы сілтемелер