1. A computer implemented method for executing an application program written in object-oriented code, the method comprising: instantiating a producer with an output that is currently of interest, wherein the object-oriented code includes methods and producer dependency declarations, wherein the producer dependency declaration for a given method identifies a set of zero or more producers, wherein a producer is a runtime instantiatable construct that includes at least an instance and a method associated with that instance: responsive to said instantiating, adding the producer of interest as part of a producer graph: attempting to automatically generate a remainder of the producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the producer graph; and executing the producers in the producer graph to determine the current output for the producer of interest, wherein said executing comprises parallelizing execution of at least two of the producers in the producer graph using the runtime based on dependency between the producers in the producer graph.