 Most programming environments with recursive subroutines use a stack for control flow . This structure typically also stores local variables , including subroutine parameters ( in call by value system such as C ) . Forth often does not have local variables , however , nor is it call @-@ by @-@ value . Instead , intermediate values are kept in a second stack . Words operate directly on the topmost values in the first stack . It may therefore be called the " parameter " or " data " stack , but most often simply " the " stack . The second , function @-@ call stack is then called the " linkage " or " return " stack , abbreviated <unk> . Special <unk> manipulation functions provided by the kernel allow it to be used for temporary storage within a word , but otherwise it cannot be used to pass parameters or manipulate data . 
