home *** CD-ROM | disk | FTP | other *** search
- DEFINITIONAL OPERATORS:
- copyright (C) 1983 by E. E. Bergmann
- definitions in alphabetical (ASCII) order
- :
- ::
- *********************************************************
- * *
- * PISTOL-Portably Implemented Stack Oriented Language *
- * Version 2.0 *
- * (C) 1983 by Ernest E. Bergmann *
- * Physics, Building #16 *
- * Lehigh Univerisity *
- * Bethlehem, Pa. 18015 *
- * *
- * Permission is hereby granted for all reproduction and *
- * distribution of this material provided this notice is *
- * included. *
- * *
- *********************************************************
- :
- ::
- ARRAY NUM 'NAME -->
- Creates an array whose name was placed on the
- the top of stack. The size of the array (in
- words) is established from the NUM that was on
- stack. Subsequent invocation of NAME will
- place a pointer to NAME[0] on top of stack.
- For example, to print the value of NAME[17]:
- X> NAME 17 W* + ?
-
- BRANCH Creates a new "catagory" or "heading" for
- definitions; creates a new vocabulary whose
- name is what has been placed on the stack.
- For example:
- X> 'SPECIAL< BRANCH
- X> SPECIAL< DEFINITIONS
- X> 'FIRST : .... ;
- .
- .
- X> > DEFINITIONS % finish definitions for
- X> % SPECIAL< vocabulary
-
- CONSTANT defines a word whose name is on the top of
- stack and assigns it the permanent value given
- by the next to top.
-
- VARIABLE Allocates space in RAM and defines a word whose
- name is on top of stack. Later, when the name
- is invoked, a pointer to the allocated space is
- pushed on stack. The variable is initialized
- to the next to top of stack.
-
- : ... ; is used in creating a standard definition.
- It takes the string pointed to by the top of
- stack as the name of the word being defined.
- The body of the word is anything that is placed
- between the ":" and the ";". When the
- definition extends beyond one line of text,
- thesystem displays a prompt that contains a
- ":". Examples have been provided already in
- the tutorial.
-
- $: ... ;$ is used to create a "macro" definition. In
- syntax and use its behavior is very similar to
- a standard definition, as described immediately
- above. However the code that is associated
- with the newly defined word will be compiled
- "in line" when the word is invoked, instead of
- being called. Its use increases the execution
- speed of any code that uses the word (since the
- is no overhead from a "call"), but the
- resulting code is usually longer; thus we can
- choose our own preference between speed and
- memory space. It is used to define "perfect
- NOPs", such as in the definition of W* when the
- word size is, in fact, 1. (see the beginning of
- PBASE).
- :
-