Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Meaning of words CTS

Tags:

c#

.net

cts

As the English is not my native language I would like to know the exact semantic of words Common Type System (CTS). Can they be interpretated as a system of common types or as a type system that is common for .NET Framework? That is whether the system is common or the types are common.:)

like image 356
Vlad from Moscow Avatar asked Jul 06 '14 20:07

Vlad from Moscow


4 Answers

That's the second option, it's a "type system" (the way you define classes, methods, attributes, ..) that is "common" to all languages on the .Net platform (C#, VB, F#, ...). Of course, I may remember wrong, but I'm pretty sure that the term 'CTS' refers explicitely to the way the CLR*) stores and uses the metadata that describe how everything is structured.

*) you've probably also seen the CLR term already. It's Common Lnguage Runtime. Its "common"-ness is liguistically structed in the same way. It is not a "common lanuage" runtime, but it's common "language runtime", it's an execution platform common to all.

However -- actually -- there is also some slight meaning in the "second way" you proposed. There are some types that are actually common, for example the most basic collections (ArrayList, Collection, HashSet, ...) or interfaces (IEnumerable, IList, ...). However they are called BCL, the Base Class Library.

like image 100
quetzalcoatl Avatar answered Oct 11 '22 04:10

quetzalcoatl


From his book (Pro C# 2008 and the .NET 3.5 Platform) , Andrew Troelsen says under the headline:

Introducing the Building Blocks of the .NET Platform (the CLR,CTS,and CLS)

Another building block of the .NET platform is the Common Type System,or CTS.The CTS specification fully describes all possible data types and programming constructs supported by the runtime, specifies how these entities can interact with each other, and details how they are repre- sented in the .NET metadata format (more information on metadata later in this chapter; see Chapter 16 for complete details). Understand that a given .NET-aware language might not support each and every feature defined by the CTS. The Common Language Specification(CLS)is a related specification that defines a subset of common types and programming constructs that all .NET programming lan- guages can agree on. Thus, if you build .NET types that only expose CLS-compliant features, you can rest assured that all .NET-aware languages can consume them. Conversely, if you make use of a data type or programming construct that is outside of the bounds of the CLS, you cannot guarantee that every .NET programming language can interact with your .NET code library

then comes this beautiful figure that sums it all up:

.NET components

I hope that help :)

like image 27
stackunderflow Avatar answered Oct 11 '22 03:10

stackunderflow


It is a 'type system' that is 'common'. I think Wikipedia explains CTS best:

Common Type System (CTS) is a standard that specifies how type definitions and specific values of types are represented in computer memory.

like image 2
ziya Avatar answered Oct 11 '22 05:10

ziya


The latter.

From the MSDN article on CTS:

Establishes a framework that helps enable cross-language integration, type safety, and high-performance code execution.

(emphasis mine)

Microsoft is using "common" to mean "mutual; shared by more than one" (first adjective definition from Wiktionary). That is, a type system shared by more than one language.

like image 2
Michael Petrotta Avatar answered Oct 11 '22 05:10

Michael Petrotta