Pok-13-wyk-Slajd20
Optymalizacje – wykorzystanie praw matematyki
W trakcie optymalizacji kodu można korzystać z praw matematyki takich, jak łączność i przemienność. Reorganizacja obliczeń może dać istotne usprawnienie kodu wynikowego.
W przedstawionym przykładzie zreorganizowano obliczanie sumy co pozwoliło zmniejszyć i liczbę dodawań i przypisań (przy założeniu, że wartość zmiennej tymczasowej t nie jest już dalej potrzebna).
Niestety, arytmetyka komputera nie zawsze zgadza się z matematycznymi tożsamościami algebraicznymi. Fakt ten uwzględniono w standardzie języka Fortran 77 – wyrażenie „x*y-x*z” można obliczyć jako „x*(y-z)”, ale nie wolno przestawiać wstawionych przez programistę nawiasów, czyli „a+(b-c)” obliczyć jako „(a+b)-c”. Optymalizator kodu musi mieć informację, o tym gdzie w wyrażeniu znajdowały się nawiasy, których nie wolno mu zreorganizować.