1. A method of optimizing address expressions within source-level code, wherein the source-level code describes the functionality of an application to be executed on a digital device, the method comprising: inputting a first source-level code that describes the functionality of the application, the first source-level code comprising address computation code and a plurality of arrays with address expressions in at least one programming loop construct, wherein the address computation code or one of the address expressions has nonlinear operations; and transforming the first source-level code into a second source-level code that describes substantially the same functionality as the first source-level code, wherein the second source-level code has fewer nonlinear operations than the first source-level code, and wherein the second source level code has the same number of loop constructs as the first source-level code; and wherein the digital device comprises at least one programmable instruction set processor.