Two fundamental parts of the .NET framework are the common language runtime (CLR) environment and the base class libraries (BCL). The CLR is the execution environment for all languages in the .NET framework. CLR, in a model similar to that of the Java virtual machine, reads Microsoft intermediate language (IL) code generated by a .NET compiler. The BCL provides prewritten services that are available to clients.
The authors formalize the implementation of generics in the CLR. They provide, using operational semantics, a syntax of the purely functional core of IL, called baby IL with generics (BILG), its typing and evaluation rules, and class and method typing in BILG. They use highly developed type theories to organize and generate their work. The use of BILG, a miniature form of generic IL, helps the authors in presenting the essential features of generic IL.
The paper, which is directed toward programming language specialists, provides a deeper understanding of the status of types in the CLR. Readers with a background in semantics and type theory will find this piece especially helpful in grasping generics in the CLR. Because of the broad applicability of the CLR, any fuller understanding of generics helps developers and computer scientists better develop programs for the .NET framework, which is likely to become an industry standard.