The Evaluation Stack
To get a feeling about the way code executes on the .NET platform and to be able to analyze fragments of intermediate language (IL) code, it’s important to know the concept of the evaluation stack. IL is a stack-based language, meaning various operations pop their operands or arguments from the stack to carry out evaluation. When evaluation completes and a result is produced, it gets pushed on the stack.
To illustrate this, consider our running example again:
int a = 1;int b = 2;int c = 3;int res = a + b * c;
To simplify matters, I’m using constant values for the three local variables. Everyone knows the result here is 7, so we could have hard-coded the value, but what matters to us is to see how the calculation is carried ...