1. A computer-readable non-transitory storage medium comprising program code for controlling a computer to perform constraint satisfaction problem (CSP) solving, the program code comprising code for evaluating variables at nodes of a CSP tree for a TRUE or FALSE state according to a script user-defined for each specific CSP, wherein the tree models a CSP problem and the script associates rules and corresponding actions with each tree node, code executed during a step of evaluating a variable at a specific node, for computing a backjump pointer according to a specific user-defined rule associated with the specific node and CSP, wherein the value of the computed backjump pointer identifies a node of the tree, wherein the specific node receives information from a parent node and computes the backjump pointer based on the received information, the received information including one or more attribute-value pairs corresponding to attributes of a variable evaluated at an ancestor node, code executed upon evaluating the specific node to a TRUE state, for pushing state information created by other user-defined rules in the specific node and attribute-value pairs for the variable evaluated at the specific node to a child node to be used by the child node to compute a backjump pointer from the child node, and code executed upon a failure to evaluate the node to a TRUE state, for restarting evaluation at the node identified by the backjump pointer.