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. |