One thing that really interests me that I don’t see much written about or discussed in .NET circles is how the runtime takes our abstractions and implements them via the CLR. While there are a few books out there that discuss some of these issues (i.e. Richter’s CLR via C# or the very tragically ignored Advanced .NET Programming by Simon Robinson which I highly recommend if you haven't read even though it's out of print) there are significant parts of the puzzle that aren’t covered by anything I’ve been able to find.
At least to me, it is a truly remarkable achievement to take the abstractions we do in programming and map those into arrays of bits and bytes that not only are faithful representations of our abstractions but can also be manipulated in ways that generate new, creative abstractions themselves. I’m looking for resource to help me understand how this occurs.
As an example of what I’m looking at knowing more of is this: we developers think of classes and instances as a discreet whole. You have a class and you have instances. We might understand that the way that the instances are set up by the runtime is by a reference that holds the instance data so that two objects of the same type don’t share data (duh), but I doubt that very many developers understand that the CLR doesn’t have any single place where class information resides—it actually only has method information and instance information then links the two under the rubric of a ‘type’. I know this is quite a different implementation of classes by the CLR than I conceived of.
Has anyone found good resources that covers this sort of stuff? They don’t need to be explicitly .NET, though I’d be the most interested in .NET-specific ones. I'm not really versed in the type theory/implementation world but I would guess that .NET CLR is fairly typical in it's approach to handling mapping abstractions to bits so any book/website covering this would be appreciated.