كيف يمكنني العثور على رمز نسخ / لصق (مكررة، استنساخ) في بيرل؟

StackOverflow https://stackoverflow.com/questions/1461873

سؤال

لقد قمت بتفتيش الإنترنت لفترة من الوقت الآن ولم أتمكن من العثور على أي أدوات / أدوات / أدوات مساعدة مجانية (أو رخيصة) يمكن أن تحلل مجموعة من ملفات بيرل (الوحدات النمطية أو البرامج النصية) والعلم مكررة أو نسخ / نسخ / رمز لصق.

أنا أفضل الآن، لكنني اعتدت على نسخ و لصق أقسام التعليمات البرمجية في كل مكان. أرغب في تنظيفه وإصلاح ازدواجي الكود القديم الخاص بي، لكن مساعدة القليل من الأدوات ستكون موضع تقدير لذلك لن أضطر إلى الذهاب من خلال كل الرمز القديم مع مشط أسنان غرامة. بالإضافة إلى ذلك، التعرف اليدوي لهذا النوع من الجرائم هو الخطأ عرضة.

هل كانت مفيدة؟

المحلول

مضحك سؤال مماثل تم نشره إلى ذلك قبل بضع دقائق فقط.

هنا رابط مع بعض الأدوات التي قد تجدها مفيدة.

الكود مقارنة والكشف عن التنظيم

نصائح أخرى

ماذا تقصد بمكرر رمز؟ مجرد شخصية المباريات الدقيقة أو المباريات الدلالية.

هناك عدة أدوات مثل http://pmd.sourceforge.net/ يمكن أن يكتشف هذا التعليمات البرمجية المكررة عن طريق مطابقات السلسلة، هذه الأداة مخصصة ل Java ولكن يعمل المطابقة المصدر على نص عادي.

إذا كنت تريد مطابقة دلالات، مثل

sub A
{return 1;}

كثيرا

sub B
{
    return 1;
}

ثم ستحتاج إلى شيء آخر :(

لقد استخدمت CCFinder. في الماضي لإيجاد أقسام من التعليمات البرمجية التي هي التكرارات. يعمل بشكل جيد للغاية ولكن لديه واجهة مثيرة للاهتمام. ليس له دعم أصلي ل PERL، لكن لديه خيار نصفي يجب أن يعمل لكشف عن نسخة ولصق على الأقل. يوجد حل Windows و Ubuntu - برنامج مجاني، وليس مصدر مفتوح لسوء الحظ.

التصاميم الدلالية تجعل المنتج يسمى استنساخ الدكتور يبدو أنه قادر على تحليل عدد كبير من أنواع اللغة للأقسام المستنسخة من التعليمات البرمجية. ولكن يبدو أن إصدار التقييم المجاني يعمل فقط على جافا وكوبول.

لقد قمت للتو بتقييمها قردي. وبعد لديها فترة تقييم مجانية لمدة 15 يوما وتكلف مائة دولارات للحصول على ترخيص مستخدم واحد. لا يدعم PERL رسميا، لكنه يعاملها كنص عادي وتحليلها على أي حال. هذه هي فائدة سريعة جدا! وسهلة الاستخدام للغاية. كان التقرير الذي تم إنشاؤه من هذه الأداة بسيطة وسهلة التفسير. أنا أوافق تماما من هذه الأداة. الآن أنا فقط بحاجة إلى التحدث مع رئيسي والحصول عليه لشراء ترخيص.

فيما يلي صفحة ويب أخرى قائمة بعض أدوات الكشف عن استنساخ:

http:/sel.ics.es.osaka-u.ac.jp/cdtools/index-e.html.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top