كود زائد

في برمجة الحاسوب ، يُعتبر الكود الزائد هو الكود المصدري أو الكود المُترجم الذي لا حاجة له. ويُعتبر الكود الذي يمكن حذفه دون التأثير على السلوك المطلوب زائداً.

فئات

تشمل الفئات البارزة للتعليمات البرمجية الزائدة ما يلي:

إعادة الحساب
إعادة حساب قيمة تم حسابها مسبقًا [ 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 ))); }

انظر أيضاً

مراجع