prev text next

                              5.   DEFINITIONS OF TERMS

          These are the definitions of the terms used within this Standard.

          address, byte 
               An unsigned 16-bit number that locates an 8-bit byte in a
               standard FORTH address space over the range {0..65,535}.  It
               may be a native machine address or a representation on a
               virtual machine, locating the addr-th byte within the
               virtual byte address space.  Addresses are treated as
               unsigned numbers.  See:  "arithmetic, two's complement"

          address, compilation 
               The numerical value compiled for a FORTH word definition
               which identifies that definition.  The address interpreter
               uses this value to locate the machine code corresponding to
               each definition.

          address, native machine  
               The natural address representation of the host computer.

          address, parameter field  
               The address of the first byte of memory associated with a
               word definition for the storage of compilation addresses (in
               a colon definition), numeric data, text characters, etc.

          arithmetic, two's complement 
               Arithmetic is performed using two's complement integers
               within a field of either 16 or 32 bits as indicated by the
               operation.  Addition and subtraction of two's complement
               integers ignore any overflow condition.  This allows numbers
               treated as unsigned to produce the same results as if the
               numbers had been treated as signed.

               The 1024 bytes of data from mass storage which are
               referenced by block numbers in the range {0..the number of
               blocks available -1}.  The actual amount of data transferred
               and the translation from block number to device and physical
               record is a function of the implementation.  
               See:  "block buffer"  "mass storage"

          block buffer 
               A 1024-byte memory area where a block is made temporarily
               available for use.  Block buffers are uniquely assigned to
               blocks.  See:  "9.7 Multiprogramming Impact"

               An assembly of 8 bits.  In reference to memory, it is the
               storage capacity for 8 bits.



               A 7-bit number the significance of which is given by the
               ASCII standard.  When contained in a larger field, the
               higher order bits are zero.  See:  "6. REFERENCES"

               The action of converting text words from the input stream
               into an internal form suitable for later execution.  When in
               the compile state, the compilation addresses of FORTH words
               are compiled into the dictionary for later execution by the
               address interpreter.  Numbers are compiled to be placed on
               the data stack when later executed.  Numbers are accepted
               from the input stream unsigned or negatively signed and
               converted using the value of BASE .  
               See:  "number"  "number conversion"  "interpreter, text"

          defining word 
               A word that, when executed, creates a new dictionary entry
               in the compilation vocabulary.  The new word name is taken
               from the input stream.  If the input stream is exhausted
               before the new name is available, an error condition exists.
               Example of defining words are:  :  CONSTANT  CREATE

               See:  "word definition"

               A structure of word definitions in computer memory which is
               extensible and grows toward higher memory addresses.
               Entries are organized in vocabularies to aid location by
               name.  See:  "search order"

               The process of sending one or more characters to the current
               output device.  These characters are typically displayed or
               printed on a terminal.  The selection of the current output
               device is system dependent.

          division, floored  
               Integer division in which the remainder carries the sign of
               the divisor or is zero, and the quotient is rounded to its
               arithmetic floor.  Note that, except for error conditions,
               n1 n2 SWAP OVER /MOD ROT * + is identical to n1.  
               See: "floor, arithmetic"
                    dividend  divisor  remainder  quotient
                      10        7        3          1
                     -10        7        4         -2
                      10       -7       -4         -2
                     -10       -7       -3          1

          equivalent execution 



               A standard program will produce the same results, exclusive
               of timing dependencies, when given the same inputs on any
               Standard System which has sufficient resources to execute
               the program.  Only standard source programs are

          error condition 
               An exceptional condition which requires action by the system
               which may be other than the expected function.  Refer to the
               section "10. Error Conditions".

               A zero number represents the false state of a flag.

               A number that may have one of two logical states, false or
               true.  See:  "false"  "true"

          floor, arithmetic  
               If z is any real number, then the floor of z is the greatest
               integer less than or equal to z.
                    The floor of +.6 is 0
                    The floor of -.4 is -1

          free field format 
               Numbers are converted using the value of BASE and then
               displayed with no leading zeros.  A trailing space is
               displayed.  The number of characters displayed is the
               minimum number of characters, at least one, to uniquely
               represent the number.  See:  "number conversion"

               A set of explanations in natural language to describe the
               corresponding computer execution of word definitions.

          immediate word  
               A word which executes when encountered during compilation or
               interpretation.  Immediate words handle special cases during
               compilation.  See, for example, IF LITERAL ." etc.

          input stream  
               A sequence of characters available to the system, for
               processing by the text interpreter.  The input stream
               conventionally may be taken from the current input device
               (via the text input buffer) and mass storage (via a block
               buffer).  BLK , >IN , TIB and #TIB specify the input stream.
               Words using or altering BLK , >IN , TIB and #TIB are
               responsible for maintaining and restoring control of the
               input stream.



               The input stream extends from the offset value of >IN to the
               size of the input stream.  If BLK is zero the input stream
               is contained within the area addressed by TIB and is #TIB
               bytes long.  If BLK is non-zero the input stream is
               contained within the block buffer specified by BLK and is
               1024 bytes long.   See:  "11.8 Input Text"

          interpreter, address 
               The machine code instructions, routine or other facilities
               that execute compiled word definitions containing
               compilation addresses.

          interpreter, text 
               The word definitions(s) that repeatedly accepts a word name
               from the input stream, locates the corresponding compilation
               address and starts the address interpreter to execute it.
               Text from the input stream interpreted as a number leaves
               the corresponding value on the data stack.  Numbers are
               accepted from the input stream unsigned or negatively signed
               and converted using the value of BASE .  See:  "number"
               "number conversion"

               The grouping of word names of each Standard word set to show
               like characteristics.  No implementation requirements are
               implied by this grouping.

          layer, compiler 
               Word definitions which add new procedures to the dictionary
               or which aid compilation by adding compilation addresses or
               data structures to the dictionary.

          layer, devices 
               Word definitions which allow access to mass storage and
               computer peripheral devices.

          layer, interpreter 
               Word definitions which support vocabularies, terminal
               output, and the interpretation of text from the text input
               buffer or a mass storage device by executing the
               corresponding word definitions.

          layer, nucleus 
               Word definitions generally defined in machine code that
               control the execution of the fundamental operations of a
               virtual FORTH machine.  This includes the address

               Redirection of the text interpreter's input stream to be
               from mass storage.  This is the general method for
               compilation of new definitions into the dictionary.

          mass storage 



               Storage which might reside outside FORTH's address space.
               Mass storage data is made available in the form of 1024-byte
               blocks.  A block is accessible within the FORTH address
               space in a block buffer.  When a block has been indicated as
               UPDATEed (modified) the block will ultimately be transferred
               to mass storage.

               When values exist within a larger field, the most-
               significant bits are zero.  16-bit numbers are represented
               in memory by addressing the first of two bytes at
               consecutive addresses.  The byte order is unspecified by
               this Standard.  Double numbers are represented on the stack
               with the most-significant 16 bits (with sign) most
               accessible.  Double numbers are represented in memory by two
               consecutive 16-bit numbers.  The address of the least
               significant 16 bits is two greater than the address of the
               most significant 16 bits.  The byte order within each 16-bit
               field is unspecified.  See:  "arithmetic, two's complement"
               "number types" "9.8 Numbers"  "11.7 Stack Parameters"

          number conversion 
               Numbers are maintained internally in binary and represented
               externally by using graphic characters within the ASCII
               character set.  Conversion between the internal and external
               forms is performed using the current value of BASE to
               determine the digits of a number.  A digit has a value
               ranging from zero to the value of BASE-1.  The digit with
               the value zero is represented by the ASCII character "0"
               (position 3/0 with the decimal equivalent of 48).  This
               representation of digits proceeds through the ASCII
               character set to the character "(" corresponding to the
               decimal value 9.  For digits with a value exceeding 9, the
               ASCII graphic characters beginning with the character "A"
               (position 4/1 with the decimal equivalent 65) corresponding
               to the decimal value 10 are used.  This sequence then
               continues up to and including the digit with the decimal
               value 71 which is represented by the ASCII character "~"
               (position 7/14 with a decimal equivalent 126).  A negative
               number may be represented by preceding the digits with a
               single leading minus sign, the character "-".

          number types 
               All number types consist of some number of bits.  These bits
               are either arbitrary or are weighted.



               Signed and unsigned numbers use weighted bits.  Weighted
               bits within a number have a value of a power of two
               beginning with the rightmost (least-significant) bit having
               the value of two to the zero power.  This weighting
               continues to the leftmost bit increasing the power by one
               for each bit.  For an unsigned number this weighting pattern
               includes the leftmost bit; thus, for an unsigned 16-bit
               number the weight of the leftmost bit is 32,768.  For a
               signed number this weighting pattern includes the leftmost
               bit but the weight of the leftmost bit is negated; thus, for
               a signed 16-bit number the weight of the leftmost bit is
               -32,768.  This weighting pattern for signed numbers is
               called two's complement notation.

               Unspecified weighted numbers are either unsigned numbers or
               signed numbers; program context determines whether the
               number is signed or unsigned.  See:  "11.7 Stack Parameters"

          pictured numeric output 
               The use of numeric output definitions which convert
               numerical values into text strings.  These definitions are
               used in a sequence which resembles a symbolic 'picture' of
               the desired text format.  Conversion proceeds from least-
               significant digit to most-significant digit, and converted
               characters are stored from higher memory addresses to lower.

               A complete specification of execution to achieve a specific
               function (application task) expressed in FORTH source code

               The process of obtaining one character from the current
               input device.  The selection of the current input device is
               system dependent.

               The process of self-reference, either directly or

               The means of indicating the end of text by striking a key on
               an input device.  The key used is system dependent.  This
               key is typically called "RETURN", "CARRIAGE RETURN", or

               Textual data arranged for editing.  By convention, a screen
               consists of 16 lines (numbered 0 through 15) of 64
               characters each.  Screens usually contain program source
               text, but may be used to view mass storage data.  The first
               byte of a screen occupies the first byte of a mass storage
               block, which is the beginning point for text interpretation
               during a load.



          search order 
               A specification of the order in which selected vocabularies
               in the dictionary are searched.  Execution of a vocabulary
               makes it the first vocabulary in the search order.  The
               dictionary is searched whenever a word is to be located by
               its name.  This order applies to all dictionary searches
               unless otherwise noted.  The search order begins with the
               last vocabulary executed and ends with FORTH , unless
               altered in a system dependent manner.

          source definition  
               Text consisting of word names suitable for compilation or
               execution by the text interpreter.  Such text is usually
               arranged in screens and maintained on a mass storage device.

          stack, data 
               A last in, first out list consisting of 16-bit binary
               values.  This stack is primarily used to hold intermediate
               values during execution of word definitions.  Stack values
               may represent numbers, characters, addresses, boolean
               values, etc.

               When the name 'stack' is used alone, it implies the data

          stack, return 
               A last in, first out list which contains the addresses of
               word definitions whose execution has not been completed by
               the address interpreter.  As a word definition passes
               control to another definition, the return point is placed on
               the return stack.

               The return stack may cautiously be used for other values.

          string, counted 
               A sequence of consecutive 8-bit bytes located in memory by
               their low memory address.  The byte at this address contains
               a count {0..255} of the number of bytes following which are
               part of the string.  The count does not include the count
               byte itself.  Counted strings usually contain ASCII

          string, text 
               A sequence of consecutive 8-bit bytes located in memory by
               their low memory address and length in bytes.  Strings
               usually, but not exclusively, contain ASCII characters.
               When the term 'string' is used alone or in conjunction with
               other words it refers to text strings.

          structure, control 



               A group of FORTH words which when executed alter the
               execution sequence.  The group starts and terminates with
               compiler words.  Examples of control structures:  DO ...
               LOOP  DO ... +LOOP  BEGIN ... WHILE ... REPEAT  BEGIN ...
               UNTIL  IF ... THEN  IF ... ELSE ... THEN  
               See:  "9.9 Control Structures"

               This term indicates that equivalent execution results when a
               program is executed on other than the system on which it was
               created.  See:  "equivalent execution"

               A non-zero value represents the true state of a flag.  Any
               non-zero value will be accepted by a standard word as
               'true'; all standard words return a 16-bit value with all
               bits set to one when returning a 'true' flag.

          user area 
               An area in memory which contains the storage for user

          variable, user  
               A variable whose data storage area is usually located in the
               user area.  Some system variables are maintained in the user
               area so that the words may be re-entrant to different users.

               An ordered list of word definitions.  Vocabularies are an
               advantage in separating different word definitions that may
               have the same name.  More than one definition with the same
               name can exist in one vocabulary.  The latter is called a
               redefinition.  The most recently created redefinition will
               be found when the vocabulary is searched.

          vocabulary, compilation 
               The vocabulary into which new word definitions are appended.

               A sequence of characters terminated by one blank or the end
               of the input stream.  Leading blanks are ignored.  Words are
               usually obtained via the input stream.

          word definition 
               A named FORTH execution procedure compiled into the
               dictionary.  Its execution may be defined in terms of
               machine code, as a sequence of compilation address, or other
               compiled words.

          word name 



               The name of a word definition.  Word names are limited to 31
               characters and may not contain an ASCII space.  If two
               definitions have different word names in the same vocabulary
               they must be uniquely findable when this vocabulary is
               searched.  See:  "vocabulary"  "9.5.3 EXPECT"

          word set  
               A named group of FORTH word definitions in the Standard.

          word set, assembler extension 
               Additional words which facilitate programming in the native
               machine language of the computer which are by nature system

          word set, double number extension 
               Additional words which facilitate manipulation of 32-bit

          word set, required 
               The minimum words needed to compile and execute Standard

          word set, system extension 
               Additional words which facilitate the access to internal
               system characteristics.

          word, standard 
               A named FORTH procedure definition, in the Required word set
               or any extension word sets, formally reviewed and accepted
               by the Standards Team.