ECL uses the following stacks:
Frame Stack |
consisting of catch, block, tagbody frames |
Bind Stack |
for shallow binding of dynamic variables |
Interpreter Stack |
acts as a Forth data stack, keeping intermediate arguments to interpreted functions, plus a history of called functions. |
C Control Stack |
used for arguments/values passing, typed lexical variables, temporary values, and function invocation. |