$14[Ib: Modularity and "Recipies" for cells] $p1 The editor allows the user to create generalised descriptions of component structures where subsequently they can be invoked with individual parameters for each instantiation. $p1 The building blocks in circuit design are described both in terms of their component structure and their geometric attributes, like size, shape and orientation. For a transistor we may have either an "etpx" (polysilicon in the x-direction) or an "etpy" (polysilicon in the y-direction). Both these objects share the same component structure but possess unique positioning parameters. We may think of an analogy of a "recipe" which describes how to construct an object and a list of "ingredients" which uniquely define each object type. By partitioning the component description in this fashion it is possible to perform geometric transformations such as scaling and rotation without having to generate an entire component data structure each time. We merely provide a new list of ingredients. $Figure'Variations of a transistor "recipe"' $b1 $h[Argument arrays and Indexing] $p1 Nodes in the structure can obtain any of their two 16-bit arguments through indexing into the current environmental argument array. Execution flags $h[indexA] and $h[indexB] indicate whether the first and the second half-word of the argument (possibly obtained indirectly for $h[Pointer]=1) are the final arguments or indexes into such array. $p1 The array itself is declared by a node $h[Setarguments](array pointer) where the new array pointer replaces the one inherited from above for the subordinate subgraph of the declaration node. The construct provides the subgraphs which can be used like drawing procedures in several places in the graph. $p1 In the example above, the fixed-dimensions description of a transistor from the previous page has been replaced by a "recipe" for a simple transistor, where explicit dimensions have been replaced by indexes into a fixed-format array. Various effects like rotation and size variations can be obtained through appropriate swopping or variation of values in the individual declarations of argument arrays prior to "calling" the transistor drawing graph. $p1 The graph is no longer a tree, but it still remains acyclic.