In pico, echo and some older versions of borg every name which
was found in the program text would result in an identifier (with
the _REF_TAG_). This identifier would point to a string. If two
identifiers had the same text, they would point to the same
string. In this way it was easy to find out if two identifiers
were the same or not.
However this is no longer possible in distirbuted systems where
programs (and their text) migrate between agent systems. Whenever
a program arrives at a new place, the deserialisator will
allocate for every string which occurs in the program a new entry
in de NAM table. If we have enough agents running arround, this
will result in filling up the complete namespace.
As such, we introduced a REF_TAG hich contains a unique string
and a TXT_TAG which can contain an already existing string. This
way we don't fill up the NAM_table, we have fast identifier
comparison and we can distinguish between 'references' and 'strings'
when deserializing.