Patent ID: 8645929

Claim:
An apparatus for executing object-oriented code, said apparatus comprising: a computer with a runtime that interprets producer dependency declarations in the object-oriented code for methods in the object-oriented code, said producer dependency declarations to identify at run time a set of zero or more producers, where a producer is a runtime instantiated construct, wherein each producer is instantiated from a respective combination of a particular instance and a particular method and identifies said particular instance and said particular method, wherein execution of a producer results in the method identified by that producer being executed on the instance identified by that producer, 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 identified by the producers already in the producer graph, wherein for each of the other producers instantiation is necessary if that producer was not already instantiated; a producer graph execution module to execute the producers in the producer graph in the order indicated by the producer graph; an override producer output module to receive current modifications to an output of one or more of the producers in a current version of the producer graph; a producer graph structure, coupled to the automated producer graph generation module, to store the current version of the producer graph and the current output of each of the producers in the current producer graph, and said producer graph execution module, coupled to the override producer output module and the producer graph structure, to make the current modifications, to track which producers in the current version of the producer graph need to be executed because they are indirectly affected by any of the current modifications, and to execute only the producers of the current version of the producer graph that currently need to be executed to maintain the consistency of the current version of the producer graph.