Apostila antiga - The Cyan Programming Language
Apostila antiga - The Cyan Programming Language
Apostila antiga - The Cyan Programming Language
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CHAPTER 5. OTIMIZAÇÃO DE CÓDIGO 59<br />
Expressões que são constante dentro de laços podem ser avaliadas antes do laço e o resultado<br />
reaproveitado. Exemplos:<br />
i = 0;<br />
while i < n - 1 do<br />
begin<br />
write(i);<br />
i = i + 1;<br />
end<br />
i = 0;<br />
t1 = n - 1;<br />
while i < t1 do<br />
begin<br />
write(i);<br />
i = i + 1;<br />
end<br />
O código<br />
s = 0;<br />
for ( i = 0; i < n; i++ )<br />
s += a*b/i;<br />
pode ser otimizado para<br />
s = 0;<br />
t1 = a*b;<br />
for ( i = 0; i < n; i++ )<br />
s += t1/i;<br />
2. Redução em Poder (Strengh Reduction)<br />
Redução em poder refere-se a transformar operações lentas (como multiplicações) em operações<br />
rápidas (como somas) dentro de laços. A cada iteração é aproveitado o resultado obtido pela<br />
iteração anterior, eliminando a necessidade de operações mais complexas. A multiplicação 4*i<br />
dentro do laço<br />
for ( i = 0; i < n; i++ )<br />
f( 4*i );<br />
pode ser transformada em soma: