M. G. J. van den Brand, H. A. de Jong, P. Klint, and P. A. Olivier. Efficient Annotated Terms. _Software - Practice & Experience_, 30:259-291, 2000. *Abstract* How do distributed applications exchange tree-like data structures? We introduce the abstract data type of _Annotated Terms_ (_ATerms_) and discuss their design, implementation and application. A comprehensive procedural interface enables creation and manipulation of ATerms in C or Java. The ATerm implementation is based on maximal subterm sharing and automatic garbage collection. A binary exchange format for the concise representation of ATerms (sharing preserved) allows the fast exchange of ATerms between applications. In a typical application--parse trees which contain considerable redundant information--less than 2 _bytes_ are needed to represent a node in memory, and less than 2 _bits_ are needed to represent it in binary format. The implementation of ATerms scales up to the manipulation of ATerms in the giga-byte range. Available: * Technical report: http://www.cwi.nl/static/publications/reports/abs/SEN-R0003.html * ATerm Library: http://www.cwi.nl/projects/MetaEnv/aterm/ See also * [[Stratego.ATerms][ATerms]] in Stratego * Tools.ATermLibrary ----- CategoryPaper