Cod mort

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică , codul mort este un termen de programare care indică codul sursă al unui program care este executat , dar produce un rezultat care nu va fi folosit niciodată în niciun alt calcul . [1] [2] Executarea codului mort pierde și timpul de calcul.

În timp ce rezultatul unui calcul mort nu ar trebui utilizat, codul mort poate genera excepții sau poate afecta starea globală, astfel încât eliminarea codului respectiv poate schimba ieșirea programului și poate provoca erori neintenționate. Dacă există ambiguitate în asigurarea faptului că ieșirea programului nu este afectată, optimizările compilatorului mențin de obicei o abordare conservatoare și, prin urmare, tind să nu elimine codul mort.

Exemple

 int foo ( int iX , int iY )
{
	int iZ = iX / iY ; // se poate produce divizarea cu excepția zero

	returnează iX * iY ;
}

În exemplul de mai sus, împărțirea iX și iY este calculată, dar nu se folosește niciodată. Prin urmare, este un cod mort și poate fi eliminat.

 public void Method () {
    final boolean bDebug = false ;

    if ( bDebug ) {
      //Fă ceva…
    }
}

În exemplul de mai sus, „face ceva” nu va fi executat niciodată, deci este cod mort. Compilatorul Java este suficient de inteligent pentru a nu-l compila.

Eliminarea codului mort

Eliminarea codului mort are două avantaje principale: reduce dimensiunea programului, un aspect important în unele contexte și permite programului să evite executarea operațiunilor irelevante, reducând astfel timpul de execuție. Codul mort include cod care nu va fi executat niciodată și cod care afectează numai variabilele moarte, care sunt variabile irelevante în ieșirea programului. Să luăm în considerare următorul exemplu scris în C.

 int foo ( nul )
 {
   int iA = 24 ;
   int iB = 25 ; / * Atribuirea variabilei moarte * /

   int iC = iA << 2 ;
   returnează iC ;

   iB = 24 ; / * Cod inaccesibil * /
   retur 0 ;
 }

Datorită executării necondiționate a declarației de returnare , alocarea iB nu va fi realizată niciodată. Prin urmare, este posibil să eliminați acest cod.

Notă

Elemente conexe

linkuri externe

  • UCDetector Eclipse plugin pentru a găsi codul mort în Java
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT