Next: Testing and debugging
Up: Run-time
Previous: Coordination
(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: Testing and debugging
Up: Run-time
Previous: Coordination
Paul Klint
2001-06-12