Patent ID: 8607207

Claim:
A method for a runtime, written in an object-oriented programming language, to execute an object-oriented program, the method comprising: automatically discovering and building by a computer a graph as part of the runtime executing the object-oriented program, wherein, based on treating a first combination as a discovered parent combination, iteratively discovering other combinations that are child combinations for discovered parent combinations, wherein each parent child relationship has one of the combinations as a parent combination and another of the combinations as a child combination, wherein each of the combinations is a combination of a specific object-oriented instance and a specific method to be executed on that specific object-oriented instance, and wherein, responsive to the combinations being iteratively discovered, building the graph of nodes coupled with links, wherein each of the combinations is identified by one of the nodes, wherein each of the links identifies one of the nodes as a parent node and another of the nodes a child node, wherein each of the parent child relationships is represented by one of the links such that the parent node of that link identifies the parent combination and the child node of that link identifies the child combination, wherein the graph has a root node, a plurality of intermediate nodes, and a plurality of end nodes, wherein the root node identifies the first combination and has a set of one or more child nodes, wherein each of the plurality of intermediate nodes has a set of one or more parent nodes and a set of one or more child nodes, wherein at least one of the plurality of intermediate nodes has the root node as a parent node, wherein at least one of the plurality of intermediate nodes has another of the intermediate nodes as a parent node; and executing, as part of the runtime executing the object-oriented program, the graph in the computer in an order indicated by the links until the root node is reached and executed, wherein the executing the graph includes, executing each of the parent nodes, wherein the execution of each of the parent nodes includes, executing the specific method on the specific object-oriented instance of the combination identified by that parent node to generate an output for that parent node using as inputs the outputs for that parent node's set of child nodes.