6. A system including executable instructions on a computer readable storage medium for processing a mathematical function input by a user, comprising: an input component configured to receive input from a user defining a mathematical function including a set of terminal tokens and non-terminal tokens, wherein a non-terminal token is reducible to at least one terminal token; a parsing component programmed to reduce the non-terminal tokens into terminal tokens, the parsing component being further programmed to identify any syntax errors in the user in put and notify the user of the syntax error; a detector programmed to detect predefined tokens and at least one user definable token in the user input, wherein a user definable token is definable only by the user and is either a defined user definable token or an undefined user definable token, a defined user definable token having been previously fully defined by the user and an undefined user definable token having not been defined by the user; an output component configured to display each detected undefined user definable token to the user; a function variable tool programmed to receive a token definition from the user for each undefined user definable token and associate the token definition with the respective undefined user definable token, the association causing the undefined user definable token to become a new defined user definable token and the received token definition to be persistently associated with all instances of the new defined user definable token; and a processing component programmed to process the mathematical function to obtain a desired result once each token in the function is parsed.
6. A system including executable instructions on a computer readable storage medium for processing a mathematical function input by a user, comprising: an input component configured to receive input from a user defining a mathematical function including a set of terminal tokens and non-terminal tokens, wherein a non-terminal token is reducible to at least one terminal token; a parsing component programmed to reduce the non-terminal tokens into terminal tokens, the parsing component being further programmed to identify any syntax errors in the user in put and notify the user of the syntax error; a detector programmed to detect predefined tokens and at least one user definable token in the user input, wherein a user definable token is definable only by the user and is either a defined user definable token or an undefined user definable token, a defined user definable token having been previously fully defined by the user and an undefined user definable token having not been defined by the user; an output component configured to display each detected undefined user definable token to the user; a function variable tool programmed to receive a token definition from the user for each undefined user definable token and associate the token definition with the respective undefined user definable token, the association causing the undefined user definable token to become a new defined user definable token and the received token definition to be persistently associated with all instances of the new defined user definable token; and a processing component programmed to process the mathematical function to obtain a desired result once each token in the function is parsed. 7. The system of claim 6 , wherein the input component comprises a first graphical user interface configured to accept the user's input and a second graphical user interface configured to receive the at least one token definition from the user.