This paper describes the implementation of an efficient runtime representation for the Ada programming language. This runtime system addresses issues of type representation, package representation, and stack frame organization but does not implement Ada tasking. The structure of the runtime system is discussed in detail. In implementing this system, considerable experience was gained using two intermediate representations of Ada: 1) a high level intermediate form designed for Ada (DIANA), and 2) a low level intermediate form used by the portable C compiler. The utility of both representations is assessed.