Combining Generics, Pre-Compilation and Sharing Between Software-Based Processes
started 1/13/2004; 2:19:10 AM - last post 1/15/2004; 2:02:00 AM
|
|
Ehud Lamm - Combining Generics, Pre-Compilation and Sharing Between Software-Based Processes
1/13/2004; 2:19:10 AM (reads: 14785, responses: 2)
|
|
Combining Generics, Pre-Compilation and Sharing Between Software-Based Processes |
Andrew Kennedy and Don Syme. Combining Generics, Pre-Compilation and Sharing Between Software-Based Processes. Semantics, Program Analysis, and Computing Environments for memory management (SPACE 2004).
Now that the CLR has generics, I suppose it is only natural to see more research on generics from MSR...
The underlying theme of this paper is the 'PL as OS' paradigm, which is quickly becoming the dominant approach, surpassing the 'PL as Platform' we were getting used to. In a nutshell: Platforms mean huge libraries; OS-like thinking means resource management.
Be that as it may, recall that when the CLR generic papers was first mentioned here I asked about run-time types? This paper shows what happens when you have to deal with run time type descriptors, in the presence of resource management and sharing. I am still not sure that compilation by erasure wouldn't have been a better approach.
Posted to implementation by Ehud Lamm on 1/13/04; 2:19:57 AM
|
|
|
|
Ziv Caspi - Re: Combining Generics, Pre-Compilation and Sharing Between Software-Based Processes
1/15/2004; 1:35:12 AM (reads: 158, responses: 1)
|
|
I am still not sure that compilation by erasure wouldn't have been a better approach.
Perhaps you mean "erasure by compilation"? Erasure of type information during compilation (as done by C++, for example) would probably be the wrong thing to do in .NET, if only because the debugging experience is so inferior.
|
|
Ehud Lamm - Re: Combining Generics, Pre-Compilation and Sharing Between Software-Based Processes
1/15/2004; 2:02:00 AM (reads: 154, responses: 0)
|
|
I am not sure we should get into the debate again, suffice it to say that there are arguments both for and against run time type descriptors.
Regarding debugging: it's a long time since we learned that symbolic debugging is possible, without drastically changing the compilation model. A source level debugger can corelate variables in the store with source-code locations, including for example generic instantiations.
By the way, notice that I said that I am still not sure. I meant to say exactly that. I am not sure of X does not imply that I am sure of not(X)...
|
|
|
|