1. A computer-implemented method to instrument a software program with automatic caching of results, the method comprising: receiving a software program that has been edited by an editing user; automatically identifying one or more cache points between instructions of the received software program that indicate one or more locations where data has been gathered or computed and can be cached to avoid at least one subsequent gathering or computation of the same data; instrumenting the received software program to add caching logic that checks for and stores cached data at identified cache points; and storing the instrumented program code for execution upon invocation of the software program, wherein the preceding steps are performed by at least one processor.