Common Language Infrastructure

Common Language Infrastructure (CLI) er en åben specifikation udviklet af Microsoft og standardiseret af ISO og ECMA, som beskriver udformningen af den udførbare kode og det runtime-miljø der udgør kernen i Microsoft .NET Framework og opensource implementeringerne Mono og Portable.NET. Specifikationen definerer et miljø der tillader brugen af forskellige højniveau-sprog på forskellige computerplatforme, uden at skulle omskrives til den specifikke system-arkitektur.

Overblik

redigér

CLI-specifikationen beskriver blandt andet følgende fire aspekter:

Common Type System (CTS)
Et fælles sæt af datatyper og operatorer der deles af alle CTS-kompatible programmeringssprog.
Metadata
Informationer om programmets opbygning er sproguafhængige, så de kan anvendes mellem forskellige sprog og værktøjer, hvilket gør det lettere at bruge kode skrevet i et andet sprog, end det du anvender.
Common Language Specification (CLS)
Et sæt af basale retningslinjer som alle programmeringssprog, der er rettet mod CLI skal overholde for at kunne samarbejde med andre CLS-kompatible sprog. CLS-reglerne definerer et udsnit af Common Type System.
Virtual Execution System (VES)
VES indlæser og udfører CLI-kompatible programmer. Ved brug af metadata kombineres separate stykker af programmet på kørselstidspunktet.

Alle kompatible sprog kompileres til Common Intermediate Language (CIL), der er et mellemkodesprog der abstaharer fra platformens hardware. Når koden afvikles, vil den platformsspecifikke VES kompilere CIL-koden til maskinkode i henhold til det specifikke hardware og operativsystem.

Standardisering og licensering

redigér

I august 2000, arbejdede Microsoft, Hewlett-Packard, Intel og andre på at standardisere CLI. I december 2001, blev det ratificeret af ECMA og efterfølgende ISO-standardiseret i april 2003.

Microsoft og deres partnere har patentet på CLI. ECMA og ISO kræver at alle patenter med afgørende betydning for implementeringen skal gøre tilgængelige under RAND (Licensering), men fortolkningen heraf har ført til en del kontroverser, især i forbindelse med Mono.

I juli 2009 tilføjede Microsoft C# og CLI under deres såkaldte Community Promise, så enhver trygt kan implementere disse standarder uden at skulle frygte et sagsanlæg for patentbrud.

 Spire
Denne artikel om standarder og måleenheder er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.