quinta-feira, 1 de março de 2007

Otimizacao de Codigo - III

Eliminação de código morto.

Código morto é todo trecho que nunca vai ser executado, trechos em lugares impossíveis de serem alcançados. Alguns exemplos seguem abaixo.

Trecho após o retorno de uma função.

FUNCTION calcula RETURNS CHARACTER():

Def var a as char.

RETURN string(10 + 20). /* Function return value. */

Assign a = a + 1. /* Essa linha nunca vai ser executada*/

END FUNCTION.

Obviamente nessa função simples isso parece ridiculo. Mas em grandes funções isso pode ocorrer com certa freqüência. Por exemplo o comando return pode estar dentro de um bloco ou de um condicional if.

Trecho após uma condição impossível

&SCOPED-DEFINE dantas 0

DEFINE VARIABLE Valido AS LOGICAL NO-UNDO init no.

IF {&dantas} = 1 THEN

DO :

ASSIGN valido = YES. /* Esse trecho nunca vai ser executado */

END.

Normalmente não se espera que um programador escreve código morto, mas isso normalmente ocorre em manutenções de programas que tornam trechos antigos obsoletos.

Nenhum comentário: