Next: Case insensitivity, Previous: Words, Up: Words [Contents][Index]
The Forth words are described in this section in the glossary notation that has become a de-facto standard for Forth texts:
word Stack effect wordset pronunciation
Description
The name of the word.
The stack effect is written in the notation before --
after, where before and after describe the top of
stack entries before and after the execution of the word. The rest of
the stack is not touched by the word. The top of stack is rightmost,
i.e., a stack sequence is written as it is typed in. Note that Gforth
uses a separate floating point stack, but a unified stack
notation. Also, return stack effects are not shown in stack
effect, but in Description. The name of a stack item describes
the type and/or the function of the item. See below for a discussion of
the types.
All words have two stack effects: A compile-time stack effect and a run-time stack effect. The compile-time stack-effect of most words is – . If the compile-time stack-effect of a word deviates from this standard behaviour, or the word does other unusual things at compile time, both stack effects are shown; otherwise only the run-time stack effect is shown.
Also note that in code templates or examples there can be comments in
parentheses that display the stack picture at this point; there is no
-- in these places, because there is no before-after situation.
How the word is pronounced.
The Forth standard is divided into several word sets. A standard
system need not support all of them. Therefore, in theory, the fewer
word sets your program uses the more portable it will be. However, we
suspect that most Standard Forth systems on personal machines will feature
all word sets. Words that are not defined in Standard Forth have
gforth or gforth-internal as word set. gforth
describes words that will work in future releases of Gforth;
gforth-internal words are more volatile. Environmental query
strings are also displayed like words; you can recognize them by the
environment in the word set field.
A description of the behaviour of the word.
The type of a stack item is specified by the character(s) the name starts with:
fBoolean flags, i.e. false or true.
cChar
wCell, can contain an integer or an address
nsigned integer
uunsigned integer
ddouble sized signed integer
uddouble sized unsigned integer
rFloat (on the FP stack)
a-Cell-aligned address
c-Char-aligned address (note that a Char may have two bytes in Windows NT)
f-Float-aligned address
df-Address aligned for IEEE double precision float
sf-Address aligned for IEEE single precision float
xtExecution token, same size as Cell
widWord list ID, same size as Cell
ior, wiorI/O result code, cell-sized. In Gforth, you can throw iors.
f83namePointer to a name structure
"string in the input stream (not on the stack). The terminating character
is a blank by default. If it is not a blank, it is shown in <>
quotes.
Next: Case insensitivity, Previous: Words, Up: Words [Contents][Index]