no-herd
karltk@gentoo.org
Karl Trygve Kalleberg
Primary maintainer
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.