Since Dogelog Player is a heap-based Prolog system, we can afford program sharing. Currently program sharing is realized for Prolog compounds, that have ground arguments. There is a base class structure for Prolog compounds, which has an alternative subclass frozen, which can be used for such frozen Prolog compounds.
Prolog variables store some colouring flags to manage Prolog generational garbage collection, and some serno which is used in lexical comparison. The serno once chosen during comparison or writing doesn’t change during environment trimming and therefore allows for certain algorithms, that other Prolog systems might not support.
The following term API calls are provided: