The environment in which bytecode is executed is the collection of resources that bytecode has access to.
Specifically, bytecode has access to:
In the following chapters, we will go over the first three in greater detail.
The stack is not the only data location you have to work with. Specifically, you have access to:
And that's it. These three data locations make up the execution environment that all contracts run in on-chain.
In the following chapters, we’ll discuss the details of working with each one.
Generally speaking, each function call gets its own, isolated execution environment. Namely:
The details of how function calls work is described in ☎️ How EVM Function Calls Work. For now, just keep in mind that function calls do not share stack nor memory.