كود زائد
في برمجة الحاسوب ، يُعتبر الكود الزائد هو الكود المصدري أو الكود المُترجم الذي لا حاجة له. ويُعتبر الكود الذي يمكن حذفه دون التأثير على السلوك المطلوب زائداً.
فئات
تشمل الفئات البارزة للتعليمات البرمجية الزائدة ما يلي:
- إعادة الحساب
- إعادة حساب قيمة تم حسابها مسبقًا [ 1 ] ولا تزال متاحة.
- رمز ميت
- الكود الذي يتم تنفيذه ولكن ليس له تأثير خارجي (أي أنه لا يغير المخرجات التي ينتجها البرنامج).
- رمز غير قابل للوصول
- الكود الذي لا يتم تنفيذه مطلقًا (يسمى أيضًا الكود الميت).
- حشو NOP
- قد تُعتبر تعليمة NOP زائدة عن الحاجة إذا كانت تُستخدم للحشو. ولكن إذا كانت تعليمة NOP ضرورية لأداء الوظيفة بشكل صحيح، فإنها لا تُعتبر زائدة عن الحاجة.
- معرّف غير مستخدم
- إن ما يتم الإعلان عنه دون الإشارة إليه هو إعلان زائد عن الحاجة.
أمثلة
في كود C التالي ، التعبير الثاني x * 2زائد عن الحاجة. يمكن حذف السطر 2، أو بدلاً من ذلك، يمكن تغيير السطر 3 إلى return y;.
دالة foo ( عدد صحيح x ) {int y = x * 2 ;أعد x * 2 ;}ثمة مثال أكثر دقة يتعلق بمعالج C المسبق الذي يُدرج التعليمات البرمجية قبل الترجمة. لننظر إلى ما يلي:
#define min(A,B) ((A)<(B)?(A):(B)) int shorter_magnitude ( int a , int b , int c , int d ) { return sqrt ( min ( a * a + b * b , c * c + d * d )); }بعد المعالجة المسبقة، يتوسع الكود ليشمل كودًا يُقيّم كلا الشرطين a*a + b*bمرتين c*c + d*d. ولإزالة الكود المكرر، minيمكن تحويل الماكرو إلى دالة.
دالة `shorter_magnitude` ( عدد صحيح a ، عدد صحيح b ، عدد صحيح c ، عدد صحيح d ) { تُرجع الجذر التربيعي لـ ((( a * a + b * b ) < ( c * c + d * d ) ؟ ( a * a + b * b ) : ( c * c + d * d ))); }انظر أيضاً
- تضخم الكود – إنتاج كود برمجي طويل أو بطيء أو غير ضروري.
- إعادة استخدام الكود – استخدام الكود الموجود في البرامج الجديدة
- حذف التعبيرات الفرعية المشتركة – تحسين أداء المُصرّف
- لا تكرر نفسك – مبدأ من مبادئ تطوير البرمجيات
- الكود المكرر – جزء متكرر من كود المصدر الحاسوبي
- التكرار (نظرية المعلومات) - رسالة مشفرة بعدد بتات أكثر من اللازم
- إعادة هيكلة الكود – إعادة تنظيم الكود البرمجي الحالي دون تغيير سلوكه الخارجي
- رائحة الكود – سمة من سمات الكود المصدري تشير إلى وجود مشكلة في الجودة
مراجع
فئات :
- تحسينات المُترجم
- شذوذ البرمجيات
- شفرة المصدر
