16. The system as recited in claim 11 wherein the rules engine is configurable to discover variable dependencies between the custom expression and a second expression using usage information obtained from the usage analysis interface, wherein further the rules engine is configurable to re-evaluate the custom expression if the second expression changes a variable that the custom expression reads from, and wherein further the rules engine is configurable to re-evaluate the second expression if the custom expression changes a variable that the second expression reads from.
11. A system comprising: at least one computer that includes at least one processing unit; a rules engine implemented at least partially by the at least one processing unit for managing rules; a custom expression defined by an expression tree that has an associated string representation, the string representation including a public constructor; a validation interface for interfacing between the custom expression and the rules engine, wherein the validation interface is configurable to access validation context provided by the rules engine, wherein further the validation interface is configurable to validate the custom expression using the validation context; an evaluation interface for interfacing between the custom expression and the rules engine, wherein the evaluation interface is configurable to access execution context provided by the rules engine, wherein further the evaluation interface is configurable to evaluate the custom expression; and a usage analysis interface for interfacing between the custom expression and the rules engine, wherein the usage analysis interface is configurable to analyze the usage of variables by the custom expression and provide usage information to the rules engine.