no-herd maintainer-needed@gentoo.org ATerm (short for Annotated Term) is an abstract data type designed for the exchange of tree-like data structures between distributed applications. The ATerm library forms a comprehensive procedural interface which enables creation and manipulation of ATerms in C and 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. Programming The ATerm library provides a comprehensive interface in C and Java to handle the annotated term data-type in an efficient manner. If the terms you handle are limited to a specific signature, you can use ApiGen to generate typed interfaces to the same ATerms.