Implementation of clients and servers is orthogonal to their mapping to Unix processes. This means that a single Unix process can contain arbitrary collections of clients and servers. Additionally, Q provides a set of matched C and Ada interfaces designed to support interprocess communication between these two languages. Certain of these adaptations were necessitated by the lack of key C language features in the Ada language. Additional features were inspired by language features present in the Ada language which are not commonly found in C language implementations.
Q defines an interprocess communication model common to both languages.
IRIS is a language-independent abstract syntax graph. Pleiades Pleiades is an Arcadia tool that accepts Ada-like descriptions of graph, relation, and relationship types and generates Ada implementations of the corresponding abstract data types, including operations for creating, manipulating, storing, and retrieving instances of these types. The generated packages are designed to limit the need for recompilation when type descriptions are modified during development. The generated packages use a uniform model of persistence that supports dynamic control over the persistence of instances. The persistence mechanism has been designed so that it can be easily ported to different storage management systems.