1. A computer readable storage medium having stored thereon a data structure for saving state of an executing program a plurality of times as the executing program executes over time, the data structure comprising: a first state frame comprising a representation of a first state of the executing program; a second state frame comprising a representation of a second state of the executing program comprising state changes made by the executing program after the first state frame is created and the second state frame includes a pointer back to the first state frame; and a third state frame comprising a representation of state changes made by the executing program after a fork method creates the third state frame, and the third state frame includes a pointer back to the second state frame; wherein the representations of state form a chain of state frames; wherein a first state of the executing program is saved in the first state frame as a semantically accessible first state object, and a second state of the executing program is saved in the second state frame as a semantically accessible second state object; wherein the third state frame is empty when created by the fork method; wherein, after the fork method creates the third state frame, a value of a variable of the executing program can be accessed by checking, in backwards order that the state frames were created, for the value of the variable in the chain of state frames; and wherein at least one of the state frames in the chain of state frames comprises a cached value copied from a prior frame in the chain of state frames.