SCALE-FREE GEOMETRY IN OO PROGRAMS. - Potanin, Alex; Noble, James; Frean, Marcus; Biddle, Robert (Communications of the ACM, 2005)
The article discusses the structure and functioning of object oriented (OO) computer programs. When executed, OO programs produce a complex web of objects that can be thought of as a graph, with objects as nodes and references as edges. An object graph--the object instances created by a program and the links between them--is the skeleton of the execution of an OO program. Object graphs are the most fundamental structure in the OO domain. The primary aim of OO analysis is to model the real world in terms of communicating objects, while OO design produces a description of an object graph that will eventually be embodied in a program. Visualization of object graphs is used to support debugging. Designers of programming languages work to control object graph structures using type systems, and compiler developers analyze parts of the graph to find ways to improve program performance. If OO programs were constructed from completely independent components, like Lego bricks, then the distribution of the size and popularity of objects would be expected to stay the same, no matter how large the program.