Flexible Bytecode for Linking in .NET

Alex Buckley, Michelle Murray, Susan Eisenbach, Sophia Drossopoulou · Electronic Notes in Theoretical Computer Science · 2005

Dynamic linking in modern execution environments like .NET is considerably more sophisticated than in the days of C shared libraries on UNIX. One aspect of this sophistication is that .NET assemblies embed type information about dynamically linked resources. This type information implicitly represents compile-time assumptions about the resources available at run-time. However, the resources available at run-time may differ from those available at compile-time. For example, the execution environment on a mobile phone might provide fewer, simpler classes than on a desktop PC. As bytecode cannot adapt to its execution environment, component reuse is restricted and development costs are increased. We have designed and implemented a “flexible” dynamic linking scheme that binds bytecode as late as possible to the assemblies and classes available in a .NET execution environment. We describe the scheme's integration with the .NET linking infrastructure, review important design decisions and report on experiences with the “Rotor” shared source version of .NET.

Read the paper · More papers on PaperTik