Vlad from Moscow
Vlad from Moscow

Reputation: 310940

Meaning of words 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.:)

Upvotes: 8

Views: 1054

Answers (4)

stackunderflow
stackunderflow

Reputation: 3873

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 :)

Upvotes: 4

Michael Petrotta
Michael Petrotta

Reputation: 60902

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.

Upvotes: 2

mtmk
mtmk

Reputation: 6316

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.

Upvotes: 2

quetzalcoatl
quetzalcoatl

Reputation: 33506

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.

Upvotes: 4

Related Questions