Elements of colorForth
This document contains concise definitions of key elements, terms, and concepts of colorForth. For a prose presentation refer to the tutorial documents.
- Character
- A member of the colorForth character set.
- Compilation
- The process of interpreting a stream of color tagged words and numbers from a block in RAM. White (comment) and Blue (display functions) are ignored as are word extensions. Yellow words and numbers are interpreted immediately when encountered; for words, only the forth word list is searched. When a magenta word is encountered, a variable is added to the word list (forth must be selected) and its value is stored in the source code where the variable is defined; the current value of any active variable is visible when displaying its source. When a red word is encountered, that word is added to the forth or macro word list depending on which was selected most recently, and associated with the next available byte in the dictionary. When a green word is encountered, the macro word list is searched and if found that word is executed immediately. If not found a green word is next searched in the forth word list and if found a call to that word is compiled into the dictionary. Cyan is used to compile a call to a macro rather than to execute it. Grey words are ignored by the PC compiler but are updated by the F18 compiler to hold F18 memory addresses. Every colorForth program, except the kernel, is compiled from source when needed. No "object code" or other binary image format is saved or manipulated.
- Editor
- The program which displays a block of colorForth source code along with a control panel for a custom keyboard interaction, and which is the main tool for maintaining the content of source code.
- Interpretation
- The process of acting immediately by direction of words and numbers. When a number is encountered it is pushed onto the stack. When a word is encountered it is executed. This is what the Interpreter does with all input received from the keyboard. When loading a block, the interpreter processes yellow words and numbers in the same way. When other colors are encountered, they are handled as described above in Compilation.
- Number
- A fixed point binary number in 32-bit, twos complement form. When used in the context of code or communications with F18 processors, only the low order 18 bits of a number are sent to the F18, and only 18 bits are received back.
- Tag
- A number which is combined with the internal binary representation of a word to identify it syntactically.
- Text Entry Mode
- A state of the system during which the keyboard is being used for entry of text, meaning words or numbers. When in this mode, one of two possible keyboard behaviors is active: QWERTY, or dvorak. Anything colorForth understands may be typed using either keyboard, but each has its own meanings for the keyboard buttons, each has a different protocol for indicating whether a word or a number is being entered, and each makes different use of the keyboard hint area of the display.
- Word
- When referring to memory, a word is either 32 bits (on the PC platforms) or 18 bits (on the F18 computers.) When referring to colorForth words, a word is a string of one or more characters that are Shannon coded and tagged.