A major obstacle in building hierarchical analysis tools is in handling overlaps of cells. This thesis describes an algorithm that transforms a hierarchical layout description into a hierarchical layout description without overlaps. This newly created hierarchy is called the disjoint hierarchy. Analysis tools that rely on this disjoint hierarchy can effectively exploit the structure of the layout. The design of hierarchical algorithms to do circuit extraction, geometric design rule checking, and simple mask operations are also described. A program that implements the disjoint transformation and performs circuit extraction is discussed. A comparison of the runtimes of this program with conventional circuit extractors shows a considerable speedup for even relatively small circuits.