A "concatenative language"
Duplicates the top value on the stack
Drops the top value on the stack
Swaps the top two values on the stack
Skips forward in the program by the amount on the top of the stack. If the value on the top of the stack is 0 or negative, the value is dropped and the program does not skip ahead.
Creates a new definition.
Example: ": double 2 * ;" defines a new word called double. Any subsequent mention of double will replace the word with its definition.
: counter dup 2 swap - ; : ! dup 1 - counter skip ! * ; 7 !