stack: an orderly pile or heap
In almost any modern programming language, a function may have local variables that are created upon entry to the function. Several invocations of the function may exist at the same time, and each invocation has its own instantiations of local variables.
In the Java method
a new instantiation of x is created (and initialized by f’s caller) each time that f is called. Because there are recursive calls, many of these x’s exist simultaneously. Similarly, a new instantiation of y is created each time the body of f is entered.
In many languages (including C, Pascal, and Java), ...