Common Language Specification - CLS are the specification laid out for any new language to adapt to the .NET platform. It is a sort of guidelines that are laid to which a language should adhere to be called to support .NET.
So the Common Language Specification is a set of constructs and constraints that serves as a guide for library writers and compiler writers. It allows libraries to be fully usable from any language supporting the CLS, and for those languages to integrate with each other. The Common Language Specification is a subset of the common type system (CTS).