1. An apparatus for executing object-oriented code, said apparatus comprising: a computer with a runtime that interprets producer dependency declarations for methods in the object-oriented code, said producer dependency declarations identify at run time a set of zero or more producers, where a producer is a runtime instantiated construct that includes at least an instance and a method associated with that instance, the runtime including, an automated producer graph generation module to receive a designation of a producer of interest, to add the producer of interest as part of a producer graph, and 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 a producer graph execution module to execute the producers in the producer graph in the order indicated by the producer graph, wherein execution of each producer results in the method of the producer being executed on the instance of the producer, wherein the producer graph execution module includes a dynamic dependencies module to resolve any dynamic producer dependencies included in the producer dependency declarations, wherein dynamic producer dependencies cause the runtime to dynamically select producers the producers dependency declarations identify during run time, wherein the dynamic selection can cause the selection of different producers during different executions of the producer graph, wherein the dynamic dependencies module to resolve dynamic producer dependencies that are contingent producer dependencies, and wherein contingent producer dependencies are dependencies on dependency determination producers that themselves are dependent on the output of one or more other products.