19.04.2013 Views

Apostila antiga - The Cyan Programming Language

Apostila antiga - The Cyan Programming Language

Apostila antiga - The Cyan Programming Language

SHOW MORE
SHOW LESS

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:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!