In the Common Intermediate Language (CIL) we can instanciate classes which are not static. That makes a lot of sense if we need to store instance data between method invocations. Why is this necessary in CIL where everything is located on the Stack anyways? There is no instance data stored in CIL, why do I need an instance? Or to blame the compiler: why doesn't the compiler compile every method to be static in CIL? My best guess is that the information of the higher level code can be extracted from CIL. This probably sounds stupid to an experienced CIL programmer because it might be completely wrong, but I am just starting to get into it.
Any clarification is very much appreciated.