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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 5. OTIMIZAÇÃO DE CÓDIGO 49<br />

L1: cmp a, b<br />

goto> L2<br />

L3: ...<br />

L1: cmp a, b<br />

goto> L2<br />

goto L3<br />

...<br />

goto L4<br />

L3:<br />

As duas versões possuem o mesmo número de comandos. Contudo, a última versão é mais rápida<br />

porque o goto L3 só será executado quando a comparação falhar, enquanto que na versão não<br />

otimizada, goto L1 sempre será executado.<br />

7. Simplificações Algébricas.<br />

Estas otimizações serão apresentadas em C++ por uma questão de clareza.<br />

a = b + 0<br />

a = b * 1<br />

a = b * 0<br />

a = b / 1<br />

a = 0 - b<br />

a = b - 0<br />

a = b<br />

a = b<br />

a = 0<br />

a = b<br />

a = -b<br />

a = b<br />

Instruções como as acima geralmente não são produto da codificação direta do programador,<br />

mas o resultado da substituição de constantes:<br />

#define Max 1<br />

...<br />

size = n*Max;<br />

8. Transformações Utilizando Operações Dependentes de Máquinas.<br />

8*a

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

Saved successfully!

Ooh no, something went wrong!