The ovm virtual machine framework is a set of tools and components
for building language runtimes. We present the design and
specification of the intermediate representation and software design
patterns used throughout the framework. One of the main themes in
this work has been to support experimentation with new linguistic
constructs and implementation techniques. To this end components
were designed to be parametric with respect to the instruction set
on which they operate. We argue that our approach eases the task of
writing new components without sacrificing efficiency.