Articulo de referencia

Código redundante

En programación informática , el código redundante es código fuente o código compilado que no es necesario. Se considera redundante el código que puede eliminarse sin afectar su...

En programación informática , el código redundante es código fuente o código compilado que no es necesario. Se considera redundante el código que puede eliminarse sin afectar su comportamiento deseado.

Categorías

Entre las categorías más destacadas de código redundante se incluyen:

Recalcular
Calcular de nuevo un valor que ya se ha calculado [ 1 ] y que aún está disponible.
Código muerto
Código que se ejecuta pero no tiene ningún efecto externo (es decir, no cambia la salida producida por un programa).
Código inalcanzable
Código que nunca se ejecuta (también llamado código muerto).
Relleno NOP
Una instrucción NOP podría considerarse redundante si se utiliza para rellenar espacios. Pero si la instrucción NOP es necesaria para el correcto funcionamiento, entonces no es redundante.
Identificador no utilizado
Algo que se declara, pero al que nunca se hace referencia, es una declaración redundante.

Ejemplos

En el siguiente código C , la segunda x * 2expresión es código redundante. La línea 2 se puede eliminar o, alternativamente, la línea 3 se puede cambiar a return y;.

int foo ( int x ) {entero y = x * 2 ;devolver x * 2 ;}

Un ejemplo más sutil involucra al preprocesador de C que inserta código antes de la compilación. Consideremos lo siguiente:

#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 )); }

Tras el preprocesamiento, el código se expande a un código que evalúa ambas operaciones a*a + b*bdos c*c + d*dveces. Para eliminar el código duplicado, la macro minpodría convertirse en una función.

int shorter_magnitude ( int a , int b , int c , int d ) { return sqrt ((( a * a + b * b ) < ( c * c + d * d ) ? ( a * a + b * b ) : ( c * c + d * d ))); }

Véase también

Referencias

  1. Debray, SK, Evans, W., Muth, R., y De Sutter, B. 2000. Técnicas de compilación para la compactación de código. ACM Trans. Program. Lang. Syst. 22, 2 (marzo de 2000), 378–415.