Naar inhoud springen

Common Language Runtime

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door Multichill (overleg | bijdragen) op 12 mrt 2007 om 20:26. (Categorie:Software, wel wat algemeen)
Deze versie kan sterk verschillen van de huidige versie van deze pagina.

De Common Language Runtime (CLR) is de virtual machine van Microsoft's .NET initiatief. De CLR is gebaseerd op de Common Language Infrastructure (CLI) standaard, welke een uitvoerings omgeving voor programmacode beschrijft. De CLR draait een vorm van bytecode genaamd Microsoft Intermediate Language (MSIL), Microsoft's implementatie van de Common Intermediate Language (CIL).

Ontwikkelaars die CLR gebruiken schrijven hun code in een zogenaamd hogere programmeertaal zoals C# of VB.NET. Tijdens het compileren zorgt een .NET compiler ervoor dat de broncode wordt omgezet naar MSIL, welke tijdens het uitvoeren door de just-in-time compiler van de CLR wordt gecompileerd naar code die uitgevoerd kan worden op het systeem waar de CLR op dat moment op draait.

Een globaal overzicht van de .NET architectuur. De CLR zet de MSIL code om in native code (code die geschikt is voor het systeem waar het op draait)

Dit zorgt ervoor dat applicaties niet hardware afhankelijk zijn, en dus op elk willekeurig systeem kunnen worden uitgevoerd, zolang er een CLR voor is. Door dit proces zijn applicaties wel (iets) trager, omdat ze tijdens het uitvoeren gecompileerd worden. Een alternatief hiervoor is dat het compileren van MSIL code naar machine-specifieke code vooraf wordt gedaan. Logischerwijs is hiermee de portabiliteit van de applicatie voor een groot deel verdwenen.

Hoewel er een aantal implementaties van de CLI beschikbaar zijn voor niet-Microsoft besturingssystemen, draait de CLR van Microsoft alleen op het eigen Windows besturingssysteem.

Zoals gezegd neemt het gebruik van een virtual machine een groot deel van de processor-specifieke details weg, wat een groot voordeel voor de programmeur is. Naast deze taak neemt de CLR onder andere de volgende taken van de programmeur (voor een groot deel) over:

  • Geheugen beheer
  • Thread beheer
  • Exception afhandeling
  • Garbage collection
  • Security

Referenties

  • (en) Overzicht van de CLR op MSDN