Search Top Index
HELP DICTIONARY A.Sloman and J.Meyer October 1988 The Poplog dictionary is a structure that contains words used for a variety of purposes, which may differ from language to language. In POP-11, for example, the words in the dictionary (see HELP * WORDS) include procedure names, variable names and constant names, as well as words that occur as values of variables or are used in lists, but do not themselves have any syntactic or semantic role in the language (ie. they have an identprops of "undef"). In Prolog, words in the dictionary include atoms, names of operators, variables and predicates, including the "arity" indicator, e.g. "append/3". The symbols of Lisp are treated differently and do not use the Poplog dictionary. A word in POPLOG is a record structure that represents a particular string of characters (the characters of the word). POPLOG maintains a dictionary of word records and, whenever a word record is to be constructed for a particular string of characters, either explicitly using *CONSWORD, or implicitly when words are read in as program text, the dictionary is searched to see if it already contains a word for that string. If so, that is returned -- otherwise a new record is constructed and entered in the dictionary. (This is in contrast, say, to the construction of a new string or list, where a completely new structure is produced every time.) Associated with a word that is used in a program is an identifier (see REF * IDENT) that defines its syntactic properties and stores its value if it has one. The mapping from words in the dictionary to identifiers, and therefore values, depends on the current section, which can change from one part of a program to another. (See REF * SECTIONS) There are several procedures for manipulating words and the dictionary. These are defined in REF * WORDS. The two main procedures that access the dictionary are -mapdic- and -appdic- (See HELP *APPDIC). Information about the type of object that any specific word from the dictionary represent can be obtained using * IDENTPROPS * IDENTTYPE. The procedure * VALOF) can be used to access the value associated with a word in the current section. The dictionary plays an important role during garbage collection, since in order to find out which structures currently in the heap are still accessible by user programs it is necessary to start scanning from the words in the dictionary. Words which have no associated identifier and are not referenced by any other structure are removed from the dictionary by the garbage collector. For more information, see: REF *WORDS REF *IDENT REF *SECTIONS REF *DATA REF *KEYS HELP *SYSGARBAGE HELP *WORDSWITH --- C.all/help/dictionary --- Copyright University of Sussex 1988. All rights reserved. ----------