I have heard a lot about "type system", "strongly typed language" and so on. Currently I am working on some .NET COM interop problem, which addressed "marshaling" a lot. And AFAIK, marshaling is quite about conversion between .NET types and COM types.
In many scenarios such as programming language, when talking about types, we are concerned about the logic meaning.
Now I am wondering: what does "type" mean physically? In a way we can watch & touch.
My current understanding is that "type" is nothing but the in-memory representation of an computation entity.
Many thanks to your replies.
Adding-1
Some quotation from MSDN:
Marshaling simple, blittable structures across the managed/unmanaged boundary first requires that managed versions of each native structure be defined. These structures can have any legal name; there is no relationship between the native and managed version of the two structures other than their data layout. Therefore, it is vital that the managed version contains fields that are the same size and in the same order as the native version. (There is no mechanism for ensuring that the managed and native versions of the structure are equivalent, so incompatibilities will not become apparent until run time. It is the programmer's responsibility to ensure that the two structures have the same data layout.)
So as far as Marshaling is concerned, it is the layout matters.