1. A method for use in a computer system for creating a doubly-rooted tree data structure and storing information representing a source code program in the data structure comprising the computer implemented steps of: retrieving a set of objects from a memory, the methods representing portions of a source code program; identifying a first set of hierarchical relationships among the objects, yielding syntactic constructs; scanning the syntactic constructs into virtual source; storing the syntactic constructs in a first tree by top down means in depth-first traversal order in accordance with the first set of hierarchical relationships so that the first tree terminates at the virtual source; identifying a second set of hierarchical relationships among the objects; storing the objects in a second tree by bottom up means in depth-first traversal order in accordance with the second set of hierarchical relationships so that the second tree terminates at the virtual source.