The Meta-Environment API

aterm Documentation

The ATerm library is an open-source library for term manipulation. This C version of the library implements the four standard serialization interfaces, features a generational garbage collector and maximal subterm sharing.

It is important to realize that the ATerm interface is fully 'functional', which means that all variables of type ATerms should be regarded as VALUES by the programmer, not pointers. ATerms are never updated destructively. The only side-effects of the ATerm API are the administration of maximal subterm sharing and garbage collection, both are hidden from the programmer.

The major blessing AND pitfall of ATerm programming is automatic garbage collection. The garbage collector automatically finds all living terms that are rooted somewhere on the C call stack (which means they are local variables in one of your functions). Global variables, or ATerm members of your own structures that are allocated on the heap need to be protected from garbage collection by ATprotect(), and unprotected again when their context is freed by ATunprotect().

Other sources of documentation

Please visit meta-environment.org for documentation and papers on the ATerm library.

Important files

Important functions


Generated on Mon Sep 21 16:12:26 2009 for aterm by  doxygen 1.4.6