Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

Symbol Class Reference

A Symbol is a name for some arbitrary abstract thing about which knowledge is being exchanged. More...

#include <Symbol.h>

Collaboration diagram for Symbol:

Collaboration graph
[legend]
List of all members.

Detailed Description

A Symbol is a name for some arbitrary abstract thing about which knowledge is being exchanged.

The thing may be one specific thing, in which case it is called a Constant, or it may be a placeholder (for nothing/one thing/many things) in which case it is called a Variable. One special kind of Constant is a Literal, which is a sequence of characters.

This is a fairly abstract version of Symbol. Inference systems will probably need to translate from these symbols into their own internal symbols using a hash_map. We cannot simply provide a void* pointer for them, since these Symbols might be used in a variety of such subsystems at the same time. This is a performance cost of keeping the upper layer free from lower-layer details. (We could keep a pointer for some small number of subsystems. Hrm.)

This implementation uses an "atom table", so symbols are just indexes into table of internal symbol data (a Symbol::Record).

Should we reclaim slots in the atom table? That might require interactions with the lower layers, I'd think.

Definition at line 41 of file Symbol.h.


Home to blindfold. This page generated via doxygen 1.2.11.1 Wed Oct 10 16:40:36 2001.