This article discusses a diagram drawing language called DIAG2. There are three basic constructs: the straight line, the segment of a circle, and text blocks. These constructs can be linked together to form groups, and these groups can also be linked together. A recursion facility is embedded in the language for the production of diagrams that have self-similarity. A nonlinear transformation is also provided for “rubber sheet’ transformations of groups. The program has been used for drawing production and as a teaching aid to demonstrate the advantages of hierarchical descriptions.