CIL (Common Intermediate Language) - это байтовый код, к которому компилируется ваш код на C# или Visual Basic. Это "машинный код" механизма выполнения .NET.
CTS (Common Type System) - это представление типов (классов и структур) на скомпилированном уровне. В основном, это означает, что все .NET-языки будут использовать общий способ представления типов (классов и структур).
CLS (Common Language Specification) - это набор ограничений на API и дополнительный набор требований к языкам. Если библиотека соответствует CLS (т.е. соблюдает все ограничения), то любой язык, соответствующий CLS, сможет использовать этот API. И наоборот, язык, совместимый с CLS, гарантированно сможет использовать любую библиотеку, совместимую с CLS. Например, язык, совместимый с CLS, гарантированно поддерживает Int32, поэтому CLS гарантирует безопасность использования Int32 в API библиотекарями.