Common Language Infrastructure

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Il Common Language Infrastructure (CLI), in italiano "infrastruttura del linguaggio comune", è una specifica aperta sviluppata da Microsoft, che descrive il codice eseguibile e l'ambiente di esecuzione che costituisce il cuore del framework .NET. La specifica definisce un ambiente che permette a più linguaggi ad alto livello di essere utilizzati su differenti piattaforme senza la necessità di essere riscritti per specifiche architetture hardware o software.

Specifica[modifica | modifica wikitesto]

Il CLI è solo una specifica e non una implementazione, ed è spesso confusa con il Common Language Runtime che contiene caratteristiche non incluse nella specifica.

La specifica CLI è divisa in quattro parti:

  • Il Common Type System o CTS: un insieme di tipi di dato e di operazioni su di essi.
  • I Metadata: le informazioni sulla struttura del programma. Esse sono indipendenti dal linguaggio di partenza per permettere a programmi scritti in linguaggi differenti di comunicare tra loro.
  • La Common Language Specification o CLS.
  • Il Virtual Execution System o VES: il sistema che esegue i programmi CLI.

La compilazione di un programma in linguaggio .NET compatibile viene tradotto in istruzioni di tipo Common Intermediate Language (CIL), un linguaggio intermedio indipendente dalla piattaforma. Per eseguire un programma in linguaggio CIL, un VES specifico per la piattaforma traduce le istruzioni CIL in linguaggio macchina, un linguaggio direttamente comprensibile dal processore della piattaforma, che è così in grado di eseguire le istruzioni.

Standardizzazione e licenza[modifica | modifica wikitesto]

Nell'agosto del 2000, Microsoft, Hewlett-Packard, Intel e altri lavorarono per standardizzare il CLI. Nel dicembre del 2001 lo standard fu ratificato dall'ECMA, e nell'aprile del 2003 è diventato uno standard ISO.

Mentre Microsoft e i suoi partner detengono i brevetti per il CLI, sia l'ECMA che l'ISO richiedono che tutti i brevetti essenziali per l'implementazione devono essere disponibili sotto termini "ragionevoli e non discriminatori" (RAND). Nel 2009 le aziende coinvolte si sono invece trovate d'accordo di rendere i brevetti disponibili sotto termini liberi da royalties o altrimenti di tipo RAND. L'accordo è detto Microsoft Open Specification Promise, e stabilisce che Microsoft e i suoi partner non perseguiranno legalmente coloro che realizzeranno una personale implementazione delle specifiche dello standard CLI (coperto da brevetto). Coloro che desiderano realizzare una propria implementazione delle specifiche CLI, hanno il permesso di estendere lo standard, tramite nuovi metodi, nuovi tipi per classi e nuovi namespace, ma non possono aggiungere o definire nuove interface.

Nel 2012, è stata pubblicata la nuova edizione dello standard CLI, ma questa nuova versione non è stata coperta dall'accordo Microsoft Open Specification Promise.

Implementazioni[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  Portale Microsoft: accedi alle voci di Wikipedia che trattano di Microsoft