The most common use of the compilation semantics of a word w is
when w is text-interpreted in compile state, the state right after
starting a definition with, e.g., :.
In this example, the text interpreter performs the compilation
semantics of s", type and ; (after first
performing the interpretation semantics of :)
When you postpone a word, you also use the compilation semantics.
: compile-+ ( -- ) \ compiled code: ( n1 n2 -- n ) POSTPONE + ; : foo ( n1 n2 -- n ) [ compile-+ ] ; see foo
Here the POSTPONE + compiles the compilation semantics of
+ into compile-+ (By contrast, just writing + in
this place would result in performing the compilation semantics
of +, and because this is a word with default compilation
semantics, that would compile the execution/interpretation
semantics of +). In the definition of foo, (the
interpretation semantics of) compile-+ is performed, which in
turn performs the compilation semantics of +, i.e., it compiles
+ into foo.
The compilation semantics is represented by a compilation token
(see Compilation token). You can get the compilation token of a
word w with ``w name>compile, comp' w, or
[comp'] w. The first form first gets the name token of
w and then accesses the compilation token with
name>compile.