1. A computer implemented method for executing an application program, the method comprising: instantiating a producer whose output is currently of interest, wherein object-oriented source code of the application program includes methods and producer dependency declarations, wherein a producer is a runtime instantiatable construct that includes at least an instance of a class and a method which is of that class, wherein each of the producer dependency declarations is for a specific method and was added by a programmer to identify at run time a set of zero or more producers through identification at run time of at least the instance of the class for each of the set of zero or more producers; 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 dependencies between the producers in the producer graph.