Several logical steps
The first two steps are static -- happen at compile time.
The last three steps are dynamic -- happen at runtime.