"The compiler optimisation of source code includes: recasting two algebraic expressions into a form of one or more token pairs arranged sequentially in a string, each token pair including an operator followed by an operand; reducing the strings in accordance with a set of predetermined simplifying rules; and comparing the reduced strings by matching to detect an equivalence of the two algebraic exp" . . . .