Common Language Infrastructure

De Common Language Infrastructure (CLI) is een open specificatie ontwikkeld door Microsoft, die de uitvoerbare code en runtime omgeving beschrijft die de kern vormt 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 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 objectgeorië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, laadt 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 compatibele talen compileren naar Common Intermediate Language (CIL). Dit is een hardware-onafhankelijke taal. Pas op het moment dat de applicatie daadwerkelijk wordt uitgevoerd zal de platform specifieke VES de CIL naar machine specifieke (native) code compileren. Dit gebeurt door middel van just-in-timecompilatie.

Standaardisering en licensering

Augustus 2000 werkten Microsoft, Hewlett-Packard, Intel en anderen samen om CLI te standaardiseren. In december 2001 werd deze standaard bekrachtigd door Ecma International. De ISO-standaardisering volgde in april 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 Microsofts 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 Microsofts commerciële implementatie van CLI voor draagbare apparaten, zoals PDA's en bijvoorbeeld de Pocket PC.
  • Mono 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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.