next up previous
Next: Testing and debugging Up: Run-time Previous: Coordination

Intermediate representation

 (1996) have proposed a data structure, called the Annotated Term Format (ATF) specifically designed for the data exchange between (possibly) heterogeneous or distributed components in a software system. Instances of this format--such as communicated via the TOOLBUS--are called ATerms. This data format describes terms that can be dynamically extended with annotations. Annotations may be arbitrarily complex--even annotated--ATerms. ATF is able to accommodate the representation of all possible data that might be exchanged between components. The representation is such that individual components may access and modify annotations that have been added by other components but they may also completely ignore them. Components are thus immune for annotations they are not interested in.

ATF can also be used as internal data structure of components themselves. It is a powerful format in which it is possible to represent, for instance, parse trees that can be annotated with diverse information like textual coordinates, access paths, or the result of program analysis.

ATF has been implemented as a subroutine library (C, Java). An important characteristic of the implementation is that it maximizes the sharing of sub-terms. In other words, ATerms are treated as directed acyclic graphs with maximal sharing of subgraphs. In this way, we can maintain a simple, term-oriented, view of ATerms at the conceptual level but still provide an efficient and concise representation at the implementation level.


next up previous
Next: Testing and debugging Up: Run-time Previous: Coordination
Paul Klint 2001-06-12