When compiling a high level language like Java, Lisp or Smalltalk, the implementation of primitive data types is a large part of the task. The powerful data types
make most of the virtual machine, and code generation for them must be rewritten if any of the specifications of the data types change. Moreover, most of the
differences between different implementations of the same data types are in the format of their representations. By describing format and semantics separately we
can create more modular and reusable specifications, and therefore more modular and reusable interfaces with the back-end of the compiler. This paper presents a
model for specifying data type implementations in a compiler, and a prototype system that was built following that model. This system automatically generates a compiler
component from the specifications of a data type, assuring consistency between implementation and specification. The system also provides a visual interface to inspect and specify
data type formats.