Naar inhoud springen

Common Language Infrastructure

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door Erik1980 (overleg | bijdragen) op 28 feb 2007 om 23:10.
Deze versie kan sterk verschillen van de huidige versie van deze pagina.

Sjabloon:Xwikify De Common Language Infrastructure (ofwel CLI) is een open specificatie ontwikkeld door Microsoft, welke de uitvoerbare code en runtime omgeving beschrijven die de kern vormen van het .NET framework. De specificatie definieert een omgeving die toestaat verschillende zogenaamde high-level programmeertalen als C# en VB.NET te gebruiken op verschillende computer platformen, zonder dat ze herschreven moeten worden.

De CLI wordt vaak verward met de Common Language Runtime (CLR), omdat dit de implementatie van de CLI specificatie is.

CLI Specificatie

Naast verschillende andere zaken beschrijft de CLI specificatie de volgende 4 aspecten:

  • Het Common Type System (CTS): Het CTS zorgt voor datatypen, zorgt voor een object georiënteerde basis van .NET.
  • Metadata: Informatie over de logica van een applicatie. Deze metadata is programmeertaal onafhankelijk, zodat tools (zoals compilers en debuggers, maar ook compilers en de VES) gemakkelijk informatie uit kunnen wisselen. Deze metadata wordt ook gebruikt door de VES zelf. (zie punt 4)
  • Common Language Specification (CLS): Een set van regels waar elke CLI compliante programmeertaal aan moet voldoen zodat ze goed samen kunnen werken met andere talen.
  • Virtual Execution System (VES): Het VES implementeert en versterkt het CTS, laad de verschillende stukken CLI compliante code in, combineert ze op basis van de metadata van de code en voert ze vervolgens uit. De VES wordt ook wel execution engine genoemd.

Alle compatible talen compileren naar Common Intermediate Language (CIL). Dit is taal die hardware-onafhankelijk is. Als de code wordt uitgevoerd zal de platform specifieke VES de CIL naar machine specifieke (native) code compileren.

Standaardisering en Licencing

In augustus van 2000 werkten Microsoft, Hewlett-Packard, Intel en anderen samen om CLI te standaardiseren. In december van 2001 werd deze standaard bekrachtigd door het ECMA, en de ISO standaardisering volgde in april van 2003.

ECMA en ISO vereisen dat alle patenten die nodig zijn om tot een implementatie te komen van een standaard beschikbaar wordt gemaakt onder "redelijke en niet discriminerende" voorwaarden, maar de bedrijven die de patenten hebben op CLI zijn overeengekomen dat de patenten beschikbaar zijn onder de "royalty-free en anders redelijke en niet discriminerende" voorwaarden.

Implementaties

  • Microsoft .NET framework omvat Microsoft's commerciële implementatie van CLI voor desktop systemen, maar slaat ook op een grotere collectie van bronnen, bibliotheken en tools.
  • Shared Source Common Language Infrastructure is een referentiële implementatie van CLI van Microsoft, vrijgegeven onder de shared source licentie.
  • .NET Compact Framework is Microsoft's commerciële implementatie van CLI voor draagbare apparaten.
  • Mono development program is een populaire open source implementatie van CLI, gesponsord door Novell.
  • Portable.NET een onderdeel van het dotGNU project is ook een open source CLI implementatie.

Referenties