Up: Design

Conceptual Integrity

Mimickry is a special case of obtaining conceptual integrity in your system. Conceptual integrity is the principle that anywhere you look in your system, you can tell that the design is part of the same overall design. This includes low-level issues such as formatting and identifier naming, but also issues such as how modules and classes are designed, etc. This is vitally important because inevitably unanticipated issues come up that must be resolved quickly. If there is a coherent design to the system, it can be much easier to resolve these issues by determining what would be consistent with the overall design, especially if the other designers are not present. When it comes to mimickry, you are attempting to model (and structure) the solution in terms of the problem. This makes it much easier to take a problem with your compiler's output (i.e., behavior) and trace it to a problem in the software.

There is extra leverage in compilers for conceptual integrity and mimickry because of syntax-directed translation. Since the grammar and the compiler's behavior are both specified in terms of the language's syntactic constructs (e.g., actions to occur in response to seeing a particular syntactic construct), it is possible to quickly track down problems. However, the compiler must be explicitly designed to reflect this syntax-directed structure. For example, look at this expr action to see how syntax drive the structure of actions, and how syntax connects the grammar to actions.

William Griswold
Sun Dec 31 18:26:15 PST 1995