Efficient annotated terms
Mark van den Brand, H. A. de Jong, Paul Klint, Pieter A. S. Olivier · Software Practice and Experience · 2000
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 the 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 two bytes are needed to represent a node in memory, and less than two 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. Copyright © 2000 John Wiley & Sons, Ltd.