There are three aspects in the design of a CLI language that hold across all languages: A mapping of language-level syntax to the underlying Common Type System (CTS).
The choice of a level of detail to expose the underlying CLI infrastructureto the direct manipulation of the programmer; and the choice of additional functionality to provide over that supported directly by the CLI.
A fourth element of designing a CLI extension to an existing language, such as C++ or Ada, requires a
fourth aspect: That of integrating the managed and native type systems. We’ll briefly look at an
example of each in turn.