Once the parse tree has been encoded, it can be manipulated in interesting ways. Although Fortran 90 supports operator overloading, there's no comparable mechanism to expression templates. Fortran compilers don't have this problem, since the language doesn't permit aliasing ambiguities. Aliasing is a problem primarily for code which is written at a low level of abstraction, and uses pointers directly. If code is written at a high level of abstraction using a class library, it's generally possible for the library designer to avoid aliasing problems, for example by loading data into local variables which are guaranteed alias-free.
Abstract programs resemble specifications more than implementations.
Complex, machine-specific code can be generated to carry out the operation. The performance of this stencil operation is constrained by memory bandwidth. Table 1 shows benchmark results for this problem . The tuned Fortran 90 version avoids array copying, but leaves the traversal order up to the compiler. Moreover, the code which it generates can be platform specific.