Previous: Forward, Up: Defining Words [Contents][Index]
The defining word synonym allows you to define
a word by name that has the same behaviour as some other word. Here
are two situation where this can be useful:
Root word list
in the Gforth source).
THEN and ENDIF are
synonyms).
Synonym ( "name" "oldname" – ) tools-ext “Synonym”
Define name to behave the same way as oldname: Same
interpretation semantics, same compilation semantics, same
to/defer! and defer@ semantics.
Gforth also offers the non-standard alias, that does not
inherit the compilation semantics, to/defer! or
defer@ semantics from its parent. You can then change, e.g.,
the compilation semantics with, e.g., immediate.
Alias ( xt "name" – ) gforth-0.6 “Alias”
Define name as a word that performs xt. Unlike for deferred words, aliases don’t have an indirection overhead when compiled.
Example:
: foo ... ; immediate ' foo Alias bar1 \ bar1 is not an immediate word ' foo Alias bar2 immediate \ bar2 is an immediate word synonym bar3 foo \ bar3 is an immediate word
Both synonyms and aliases have a different nt than the original, but
ticking it (or using name>interpret) produces the same xt as
the original (see Tokens for Words).
Previous: Forward, Up: Defining Words [Contents][Index]