1. A method for representing a design comprising: a processor, for a code generator within a computer generating a processor specification that specifies the design for the processor, wherein the processor specification is comprised of a plurality of augmented types, a plurality of states and plurality of operators causing state transformations; the code generator and an optimizer coupled to the computer translating the processor specification into a compiler module of a compiler, thereby resolving a hierarchy of one or more of the plurality of augmented types in terms of terminal structural elements of the processor, and transforming a target-independent code generator into a target-dependent program implementation; and the compiler and a linker coupled to the computer transforming the processor specification into an executable simulation of the processor, wherein the simulation predicts a result of executing the program implementation on a physical embodiment of the terminal structural elements.