1. A method of interpreting a program for the creation of an image, wherein the image is made up of multiple graphical elements and said program is defined in a graphical programming language, said method being performed by a computer and comprising the steps of: (a) constructing at least one expression tree describing operations required to create the image; (b) automatically altering at least one portion of said expression tree so as to reduce a corresponding execution time of a series of instructions derived from said expression tree without substantially altering an image created by the execution of said series of instructions, and (c) converting said altered expression tree to a corresponding series of instructions for creating the image, wherein said altering step comprises the sub-steps of: (b) (i) determining an alternative form of expression of portions of said at least one expression tree, (b) (ii) estimating a cost of execution of a corresponding series of instructions of said alternative form of expression, and (b) (iii) altering said portion to said alternative form of expression when the cost of execution of said alternative form of said portion is lower than the cost of execution of a present form of said portion, wherein said expression tree includes leaf nodes having associated graphical elements and internal nodes having associated codes for combining graphical elements, and wherein said portions include internal nodes and said estimating sub-step includes determining the size of descendant graphical elements corresponding to the descendants of the current node, and determining the cost of execution from at least the size of said descendant graphical elements.