This is a description for the name of an existing or new Forth
word in the input stream, delimited by spaces. The quotes around
name are not part of the string. name shall contain {1..31}
characters. This is the preferred notation instead of
See also:
This is a description for a string in the input stream, delimited
by a space. The quotes around ccc are not part of the string. ccc
contains {0..255} characters.
See also:
This is a description for a string in the input stream, delimited
by the end of the line. The quotes around ccc and the angle
brackets around the eol character are not part of the string. ccc
contains {0..255} characters. In some specified cases eol may be
the character ^] (GS) and the line may contain more characters
that are not included in the string.
See also:
This is a description for a string in the input stream, delimited
by the character "x". The quotes around ccc and the angle
brackets around x are not part of the string. ccc contains
{0..255} characters.
See also:
This is a description for the name of an existing or new Forth
word in the input stream, delimited by spaces. The quotes around
name are not part of the string. name shall contain {1..31}
characters.
See also:
String-stack stack-id.
Double-cell non-negative number.
Non-negative number.
This term describes a cell-aligned address in the data space.
Auxiliary-stack stack-id.
An absolute path to files contains an optional drive letter and
colon and one of more directory names separated by slashes.
See also:
An address identifies a location in data space with a size of one address unit, which an application program may fetch from or store into except for the restrictions established in the Standard. The size of an address unit is specified in bits. Each distinct address value identifies exactly one such storage element.
Depending on context, either
1) the units in which a Forth
address space is divided for the purposes of locating data
objects such as characters and variables;
2) the physical memory
storage elements corresponding to those units;
3) the contents of
such a memory storage element; or
4) the units in which the
length of a region of memory is expressed.
Implementation: The size of an address unit is 8 bits.
The address of a memory location at which a character, cell, cell pair, or double-cell integer can be accessed.
A circumstance for which the Standard does not not prescribe a
specific behavior for Forth systems and programs.
Ambiguous conditions include such things as the absence of a
needed delimiter while parsing, attempted access to a nonexistent
file or attempted use of a nonexistend word. An ambiguous
condition also exists when a Standard word is passed values that
are improper or out of range.
A stack for use by the programmer, available when words like
1024 characters of data on mass storage, designated by a block number.
A block-sized region of data space where a block is made
temporarily available for use. The current block buffer is the
block buffer most recently accessed by
Buffering files can be used to speed up reading from and writing
to files.
Implementation: Buffering is necessary for use of
Files opened read-only without modifiers are buffered, including
Before closing a buffered output file that has been written to
with WRITE-CHAR,
This term describes a character-aligned address in the data space.
Control-flow stack-id.
The case of characters in new definition names is preserved when
they are added to the dictionary. When searching for names, and
The data generated upon beginning to compile a
Implementation: One control-flow-stack and one locals stack item
are generated for case-sys.
The primary unit of information in the architecture of a Forth
system.
Implementation: The size of a cell is 16 bits.
Two cells that are treated as a single unit.
Implementation: The size of a cell pair is 32 bits.
A cell pair in memory consists of a sequence of two contiguous cells. The cell at the lower address is the first cell, and its address is used to identify the cell pair. Unless otherwise specified, a cell pair on a stack consists of the first cell immediately above the second cell.
Character.
Depending on context, either
1) a storage unit capable of holding
a character;
2) a member of a character set.
Implementation: The size of a character is 8 bits.
The address of a memory location at which a character can be
accessed.
Implementation: Any address is character aligned.
Data space that is associated with a sequence of consecutive character aligned addresses. Character strings usually contain text. Unless otherwise indicated, the term "string" means "character string".
A string is specified by a cell pair (c-addr u) representing its starting address and length in characters.
All non-graphic characters included in the implementation-defined
character set are defined in the Standard as control characters.
In particular, the characters {0..31}, which could be included in
the implementation defined character set, are control characters.
Programs that use more than 7 bits of a character by
A term describing the implementation of ANS Forth for the PC by Coos Haak.
The logical area of the dictionary in which word semantics are
implemented.
Implementation: The code space is the same as the data space and
is different from the list and name spaces. Addressing is
relative to the base paragraph address given by
The data generated upon beginning to compile a definition and
consumed at its close is represented by the symbol colon-sys in
the Standard.
Implementation: No control-flow-stack items are generated for
colon-sys. The values of the data stack pointer and the locals
stack pointer at
The behavior of a Forth definition when its name is encountered by the text interpreter in compilation state.
The word list into which new words are placed.
To transform source code into dictionary definitions.
A Forth word flagged by
A textfile that is loaded and interpreted when the CHForth
program is started. The name is given by
The control-flow stack is a last-in, first-out list whose
elements define the permissible matchings of control-flow words
and the restrictions imposed on data-stack storage usage during
the compilation of control structures. The elements on the
control-flow stack are system-compilation data types.
Implementation: The control-flow stack is implemented on the data
stack. Items placed on the data stack are unavailable to a program
after items are placed on the control-flow stack and remain
unavailable until the control-flow stack items are removed.
A data structure consisting of one character containing the
length followed by zero or more contiguous data characters.
Normally, counted strings contain text.
Implementation: The maximum length of a counted string is 256
characters including the count character.
A system that compiles a program for later execution in an
environment that may be physically and logically different from
the compiling environment. In a cross compiler the term "host"
applies to the compiling environment and the term "target"
applies to the run-time environment.
Implementation: The host and target environments are the real or
virtual 16 bit modes on the i86 processor family and the MS/PCDOS
operating system or a DOS box under Windows.
The definition whose compilation has been started but not yet ended.
Double-cell signed number.
The data space associated with a word defined via CREATE .
The logical area of the dictionary that can be accessed.
Implementation: The data space is the same as the code space and
is different from the list and name spaces. Addressing is relative
to the base paragraph address given by
See also:
The address of the next available data-space location, i.e. the
value returned by
A stack that may be used for passing parameters between definitions. Where there is no possibility of confusion, the data stack is referred to as "the stack". Contrast with return stack. Objects on the data stack are one cell wide.
An identifier for the set of values that a data object may have.
Abbreviation for dictionary entry address, the start of a
A Forth word that creates a new definition when executed.
A Forth execution procedure compiled into the dictionary.
If the delimiter is the space character, hex 20 (BL), control characters are treated as delimiters.
The data generated upon beginning to compile a backward
destination for transfer of control and consumed at its close is
represented by the symbol dest in the Standard.
Implementation: Two control-flow-stack items are generated for
dest.
An extensible structure that contains definitions and associated data space.
This is the term to describe a header. A dictionary entry is
in the name space and its address,
Numbers shall be represented externally by using characters from
the standard character set.
Conversion between the internal and external forms of a digit
shall behave as follows:
The value in
To send one or more characters to the user output device.
The data generated upon beginning to compile a do-loop structure
such as
Implementation: Two control-flow-stack items and one (with DO) or
two (with ?DO) locals stack items are generated for do-sys.
The memory area where the operating system stores strings
available for programs. Strings in the current environment can be
retrieved by
Implementation: The base paragraph address is given by
On the stack, the cell containing the most significant part of a double-cell number shall be above the cell containing the least significant part.
The range of double-cell non-negative integers is {0..+2147483647}.
The range of double-cell signed integers is {-2147483647..+2147483647}.
The range of double-cell unsigned integers is {0..+4294967295}. Placing the single-cell integer zero above a single-cell unsigned integer produces a double-cell unsigned integer with the same value.
The process of passing a string to the Forth system and receiving information about the function described in the string.
A program's implicit assumptions about a Forth system's implementation options or underlying hardware. For example, a program that assumes a cell size greater than 16 bits is said to have an environmental dependency.
An exception frame is the implementation-dependent set of
information recording the current execution state necessary for
the proper function of
A stack used for the nesting of exception frames by
Implementation: The exception stack is implemented on the return
stack.
See:
The behavior of a Forth definition when it is executed.
A value that identifies the execution semantics of a definition.
Usage:
Different definition names may refer to the same execution token
by the use of
This term describes a machine dependent long address, effective
20 bit or 1 Mb. When an extended address is placed on the stack,
the cell on the top of stack contains the offset and the second
cell contains the paragraph address. As this address is not
linear, address arithmetic without changing the paragraph address
is limited to the range of single-cell numbers.
See also:
Abbreviation for
Permissible means of accessing a file, such as "read/write" or "read only".
A single-cell value that is passed to file operators to designate
specific files. Opening a file assigns a file identifier, which
remains valid until closed.
Implementation: The file identifier is one more than the file
handle given by the operating system to discriminate between
The character offset from the start of the file.
Abbreviation for
To search the dictionary for a definition name matching a given string.
Flags may have one or two logical states, true or false. Programs
that use flags as arithmetic operands have an environmental
dependency.
A true flag returned by a standard word is a single-cell value
with all bits set. A false flag returned by a standard word is a
single-cell value with all bits clear.
This is a field in the dictionary entry containing flags defining properities of the word described in the entry. flags signal if the word is immediate, standard, or compile-only.
Floored division is integer division in which the remainder carries the sign of the divisor or is zero, and the quotient is rounded to its arithmetic floor
This is a field in the dictionary entry that may contain zero or an execution token that will be executed when the word is forgotten.
Free-field number display uses the characters described in digit conversion, without leading zeros, in a field the exact size of the converted string plus a trailing space. If a number is zero, the least significant digit is not considered a leading zero. If the number is negative, a leading minus sign is displayed.
****
The glossary entries contained in the help files are listed in a modified ASCII collating sequence in which uppercase characters are considered the same as lowercase characters. The index line contains the name of the entry and in the case of a kernel definition the name of the word list in which the words is compiled. Non-kernel words have the name of the definition file on the index line. Then follows a stack notation and the semantics of the entry.
Any data type.
Single-cell numbers indicating the result of I/O operations. A
value of zero indicates that the I/O operation completed
successfully; other values and their meanings are implementation-
defined. Reaching the end of a file shall be reported as zero.
An I/O exception in the execution of a File-Access word that can
return an I/O result shall not cause a
A Forth word whose compilation semantics are to perform its execution semantics.
Denotes system behaviors or features that must be provided and documented by a system but whose further details are not prescribed by the Standard.
Denotes system behaviors or features that must be provided by a system but whose further details are not prescribed by the Standard.
A region of memory containing the sequence of characters from the input source that is currently accessible to a program.
The file, containing a sequence of lines, that is the input source.
The device, file, block, or other entity that supplies characters to refill the input buffer.
A set of information describing a particular state of the input source, input buffer, and parse area. This information is sufficient, when saved and restored properly, to enable the nesting of parsing operations on the same or different input sources.
Division produces a quotient q and a remainder r by dividing operand a by operand b. Division operators return q, r or both. The identity b*q+r=a shall hold for all a and b.
Implementation: Internal representation of numbers and arithmetic is two's complement. Arithmetic zero is represented as the value of a single cell with all of its bits clear. A single-cell number in memory has its low 8 bits at its address and its high 8 bits at the next higher address.
See:
The process of finding words in the input stream and executing them.
The behavior of a Forth definition when its name is encountered by the text interpreter in interpretation state.
Abbreviation for
Attribute of words defined in the Meta Forth kernel. The source is only available to the developer of CHForth.
A value received by the system denoting a user action at the user input device. The term "keyboard" in this document does not exclude other types of user input devices.
This term describes a cell-aligned address in the list space. All
operations in the list space keep the addresses cell aligned.
See also:
This term describes a Forth program containing general or special
routines that is loaded by
See also:
A sequence of characters followed by an actual or implied line terminator.
A character or character sequence that terminates a line in a
text file.
Implementation: The characters CR, LF and the sequence CR+LF are
allowed in a text file for input by
The logical area of the dictionary in which the bodies of colon
definitions are stored.
Implementation: The list space is different from the code, data
and name spaces. Addressing is relative to the base paragraph
address given by
See also:
Abbreviation for
A term describing accessing a file from disk and interpreting the
Forth source code and compiling it.
Implementation: This can be done for blocks files using
A stack that is used to store local variables. Not intended for direct access.
The loop-control parameters used to control the execution of
do-loops are represented by the symbol loop-sys in the Standard.
Loop-control parameters shall be available inside the do-loop for
words that use or change these parameters, words such as
Implementation: Two return-stack items are generated for loop-sys.
Thank you for using CHForth. Look here for a short start, don't
type
Most words above give help when typed without an argument.
Load files with
Context determines which of the following definitions applies:
1) A colon definition defined in the
2) A definition defined by the word
When a word of 2) is encountered, the compiler or interpreter
finds the definition defined in 1) with the same name in the
methods section of the defining word of the following definition
and compiles or executes the execution token.
The data generated by
Implementation: Two stack items are generated for method-sys.
The words or methods defined between the words
Signed number.
This term describes a cell-aligned address in the name space. All
operations in the name space keep the addresses cell aligned.
See also:
The logical area of the dictionary in which word names are
stored.
Implementation: The name space is different from the code, data
and list spaces. Addressing is relative to the base paragraph
address given by
See also:
The data generated upon beginning to execute a definition and
consumed upon exiting it is represented by the symbol nest-sys in
the Standard.
Implementation: One return-stack item is generated for nest-sys.
In the Standard, "number" used without qualification means "integer". Similarly "double number" means "double-cell integer".
The Standard adopts certain words and practices that cause some previously used words to become obsolescent. Although retained here because of their widespread use, their use in new implementations or new programs is discouraged, because they may be withdrawn from future revisions of the Standard.
The data generated upon beginning to compile an
Implementation: Two control-flow-stack items are generated for
of-sys.
The data generated upon beginning to compile a forward origin for
transfer of control and consumed at its close is represented by
the symbol orig in the Standard.
Implementation: Two control-flow-stack items are generated for
orig.
The smallest block of memory that can be allocated using
The number of a paragraph unit in memory. This is an address divided by sixteen. The range of paragraph addresses is {0..65535}.
To select and exclude a character string from the parse area using a specified set of delimiting characters, called delimiters.
The portion of the input buffer that has not yet been parsed, and is thus available to the system for subsequent processing by the interpreter and other parsing operations.
A number display format in which the number is converted using Forth words that resemble a symbolic "picture" of the desired output.
See:
****
A complete specification of execution to achieve a specific function (application task) expressed in Forth source code form.
The memory area where the operating system maintains information
about a running program.
Implementation: The base paragraph address is given by
This term describes a cell-aligned address in the string space.
All operations in the string space keep the addresses cell
aligned.
See also:
Return-stack stack-id.
To obtain characters from the user input device.
A relative path begins with ~ optionally followed by directory
names separated by slashes and an optional file name or
wildcards. The ~ is expanded by
See also:
An 8 bit value that the current program passes to the calling program (e.g. the operating system) when it stops execution. This value might be used to signal success or failure to the o.s.
A stack that may be used for program execution nesting, do-loop execution, temporary storage, and other purposes.
Data-stack stack-id. This stack-id may be omitted.
A list of word lists specifiying the order in which the dictionary will be searched.
The meaning and behavior of a word or words.
The range of non-negative integers is {0..+32767}.
The range of signed integers is {-32767..+32767}.
Cells are a fixed size that is implementation defined, specified
in address units and the corresponding number of bits. Data-stack
elements, return-stack elements, addresses, execution tokens,
flags, and single-cell numbers are one cell wide.
Implementation: The size of a cell is 2 address units or 16 bits
and can contain two characters.
The range of unsigned integers is {0..+65535}.
See:
Specifies the stack for which the stack diagram is described. Default is data-stack.
The logical area of the dictionary in which the stacks are
placed.
Implementation: The stack space is different from the code, data,
list and name spaces. As Forth is a stack language, addressing is
relative to the values of the stack pointers, and is implicitly
done in stack operators. Specific operators for addressing data
in this area are therefore not provided. The base paragraph
address is given by
A named Forth procedure, formally specified in the Standard.
Implementation: A standard word is marked by the word CORE, CORE
EXT, SEARCH etc. at the far right of the first line of the help
description for the word.
A string on the string stack
Character string.
****
The data generated by
Implementation: One control-flow stack item is generated for
struct-sys.
Symmetric division is integer division in which the remainder carries the sign of the dividend or is zero and the quotient is the mathematical quotient "rounded towards zero" or "truncated".
These data types denote zero or more items on the control-flow stack. The possible presence of such items on the data stack means that any items already there shall be unavailable to a program until the control-flow-stack items are consumed.
These data types denote zero or more items on the return stack. Their possible presence means that any items already on the return stack shall be unavailable to a program until the system-execution items are consumed.
A location in memory containing at most 256 characters that is
valid for a restricted time. Its contents have to be used before
they may be overwritten. The location is not fixed like a
See also:
Attribute of terms defined in the file meta\terms.frt. The source is only available to the developer of CHForth.
Attribute of terms defined in the file meta\terms2.frt. The source is only available to the developer of CHForth.
The throw values {-255..-1} shall be used only as assigned by
the Standard. The values {-4095..-256} shall be used only as
assigned by the implemented Forth system.
Implementation: The non-zero values of ior returned by the
operating system are biased to fall in the range {-511..-257}.
The kernel
A region in memory containing at most 256 characters that is
valid for a restricted time. Its contents have to be used before
they may be overwritten. The location is fixed unlike a
See also:
Unsigned number.
Double-cell unsigned number.
The input device currently selected as the source of received data, typically a keyboard.
The output device currently selected as the destination of display data.
Attribute of words defined in the file meta\utility.frt. The source is only available to the developer of CHForth.
A named region of data space located and accessed by its memory address.
Abbreviation for word list identifier.
Depending on context, either
1) the name of a Forth definition;
or
2) a parsed sequence of non-space characters, which could be
the name of a Forth definition.
A list of associated Forth definition names that may be examined during a dictionary search.
A set of Forth definitions grouped together in the Standard under a name indicating some shared aspect, typically their common funcional area.
Unspecified cell.
Abbreviation for extended address. x-addr on the stack is two
cells with the offset placed above the paragraph address. This
enables access to the first 1 Mb memory of the real or virtual 16
bit mode of the i86 processor family.
See also:
Unspecified cell pair.
Abbreviation for
This the abbreviation for the base directory for the library and
help files of CHForth. The full name is returned by
See also: