Common Language Infrastructure (CLI) est un cadre standardisรฉ dรฉveloppรฉ par Microsoft pour crรฉer et exรฉcuter applications รฉcrit en diffรฉrents langages de programmation. Il fournit une plate-forme linguistiquement neutre qui permet l'interopรฉrabilitรฉ du code, permettant ร diffรฉrents langages de fonctionner ensemble de maniรจre transparente.

Quโest-ce que lโinfrastructure linguistique commune ?
Common Language Infrastructure (CLI) est une architecture standardisรฉe conรงue par Microsoft pour prendre en charge le dรฉveloppement et l'exรฉcution d'applications logicielles รฉcrites dans plusieurs langages de programmation de haut niveau. CLI fournit un environnement dans lequel le code de diffรฉrents langages peut interagir, en exploitant un ensemble unifiรฉ de services et de bibliothรจques.
Ce cadre comprend la dรฉfinition des types de donnรฉes, l'exรฉcution de code et d'autres d'exรฉcution comportements, garantissant que les programmes peuvent รชtre exรฉcutรฉs sur diffรฉrents matรฉriel et plateformes logicielles sans modification. En faisant abstraction de la plate-forme sous-jacente, CLI permet aux dรฉveloppeurs d'รฉcrire du code dans leur langage prรฉfรฉrรฉ tout en conservant la compatibilitรฉ et les performances. Le systรจme comprend รฉgalement un modรจle de sรฉcuritรฉ robuste, un garbage collection, une gestion des exceptions et une prise en charge des types dynamiques.
Composants d'infrastructure linguistique commune
Common Language Infrastructure se compose de plusieurs composants de base qui, ensemble, facilitent le dรฉveloppement et l'exรฉcution d'applications dans un environnement multilingue. Chaque composant joue un rรดle crucial pour garantir l'interopรฉrabilitรฉ du langage, la gestion du temps d'exรฉcution et la cohรฉrence de l'exรฉcution. Ils comprennent:
- Systรจme de type commun (CTS). CTS dรฉfinit la maniรจre dont les types de donnรฉes sont dรฉclarรฉs, utilisรฉs et gรฉrรฉs dans l'environnement d'exรฉcution. Il garantit que les types utilisรฉs dans diffรฉrents langages de programmation peuvent interopรฉrer en รฉtablissant un cadre commun pour la reprรฉsentation des types de donnรฉes. Cela permet une intรฉgration et une communication transparentes entre le code รฉcrit dans diffรฉrents langages.
- Spรฉcification de langage commun (CLS). CLS fournit un ensemble de rรจgles et de directives que les langues doivent suivre pour garantir qu'elles peuvent interagir avec d'autres langues compatibles CLS. Cette spรฉcification dรฉfinit un sous-ensemble de CTS que tous les langages ciblant la CLI doivent prendre en charge, favorisant l'interopรฉrabilitรฉ et rรฉduisant les barriรจres linguistiques.
- Systรจme d'exรฉcution virtuel (VES). VES, รฉgalement connu sous le nom de Common Language Runtime (CLR) dans le framework .NET, est responsable de la gestion de l'exรฉcution des programmes compatibles CLI. Il fournit des services tels que la gestion de la mรฉmoire, l'application de la sรฉcuritรฉ, la gestion des exceptions et la compilation juste ร temps (JIT) du code de langage intermรฉdiaire (IL) en code machine natif.
- Mรฉtadonnรฉes. Mรฉtadonnรฉes dรฉcrit la structure du code et les types qu'il contient, y compris les classes, les interfaces, les mรฉthodes et les champs. Il fournit des informations essentielles que le runtime utilise pour la vรฉrification de type, la sรฉcuritรฉ et le marshaling, permettant un degrรฉ รฉlevรฉ d'introspection et d'auto-description dans le code.
- Langue intermรฉdiaire (IL). IL, รฉgalement connu sous le nom de langage intermรฉdiaire commun (CIL) ou langage intermรฉdiaire Microsoft (MSIL), est le Processeur-ensemble d'instructions indรฉpendant dans lequel les langages CLI se compilent. Le VES exรฉcute IL en le convertissant en code natif ร l'aide d'une compilation JIT ou d'une compilation anticipรฉe (AOT), permettant l'indรฉpendance et l'optimisation de la plate-forme.
Comment fonctionne lโinfrastructure linguistique commune ?
L'infrastructure de langage commun (CLI) fonctionne comme un cadre complet qui permet le dรฉveloppement et l'exรฉcution d'applications รฉcrites dans plusieurs langages de programmation, garantissant ainsi l'interopรฉrabilitรฉ et une exรฉcution efficace. Voici un aperรงu du fonctionnement de la CLI :
- Compilation du code source. Lorsque vous รฉcrivez du code dans un langage pris en charge par la CLI, le code source est compilรฉ par le compilateur de langage respectif dans un langage intermรฉdiaire (IL), indรฉpendant du processeur. Ce code IL est un ensemble d'instructions de bas niveau que tous les langages compatibles CLI utilisent, garantissant la cohรฉrence et l'interopรฉrabilitรฉ.
- Gรฉnรฉration de mรฉtadonnรฉes. Parallรจlement ร IL, le compilateur gรฉnรจre des mรฉtadonnรฉes qui dรฉcrivent les types, les membres et les rรฉfรฉrences dans le code. Les mรฉtadonnรฉes incluent des informations sur les classes, les mรฉthodes, les champs et d'autres structures de donnรฉes, facilitant la vรฉrification du type, l'application de la sรฉcuritรฉ et d'autres services d'exรฉcution.
- Crรฉation d'assemblage. Le code IL et les mรฉtadonnรฉes sont regroupรฉs dans un assembly, qui peut รชtre soit un exรฉcutable (.exe), soit une bibliothรจque (.dll). Les assemblys sont les รฉlรฉments constitutifs des applications CLI et peuvent รชtre partagรฉs et rรฉutilisรฉs dans diffรฉrentes applications.
- Exรฉcution par systรจme d'exรฉcution virtuel (VES). Lorsqu'un assembly est exรฉcutรฉ, le systรจme d'exรฉcution virtuel (VES), รฉgalement connu sous le nom de Common Language Runtime (CLR) dans .NET, prend le relais. Le VES charge l'assembly, lit les mรฉtadonnรฉes et commence l'exรฉcution en convertissant le code IL en code machine natif ร l'aide d'une compilation juste ร temps (JIT). Alternativement, la compilation anticipรฉe (AOT) peut รชtre utilisรฉe pour convertir IL en code natif avant l'exรฉcution, amรฉliorant ainsi les performances.
- Gestion de la mรฉmoire. VES gรจre la gestion de la mรฉmoire via le garbage collection automatique. Ce processus identifie et libรจre la mรฉmoire qui n'est plus utilisรฉe, empรชchant ainsi la mรฉmoire fuites et optimiser lโutilisation des ressources.
- Application de la sรฉcuritรฉ. CLI intรจgre un modรจle de sรฉcuritรฉ robuste qui applique la sรฉcuritรฉ d'accรจs au code (CAS) et la sรฉcuritรฉ des types, garantissant que le code s'exรฉcute dans les autorisations et limites dรฉfinies. Cela empรชche lโaccรจs non autorisรฉ et lโexรฉcution de code nuisible.
- Gestion des exceptions. Le VES fournit un mรฉcanisme cohรฉrent de gestion des exceptions dans tous les langages compatibles CLI, permettant aux dรฉveloppeurs d'รฉcrire des applications robustes et tolรฉrantes aux erreurs. Les exceptions sont gรฉrรฉes de maniรจre uniforme, garantissant que les erreurs sont dรฉtectรฉes et traitรฉes de maniรจre appropriรฉe.
- Interopรฉrabilitรฉ. Le systรจme de type commun (CTS) et la spรฉcification de langage commun (CLS) garantissent que diffรฉrents langages peuvent fonctionner ensemble de maniรจre transparente. CTS dรฉfinit un ensemble commun de types de donnรฉes et d'opรฉrations, tandis que CLS spรฉcifie les fonctionnalitรฉs que les langages doivent prendre en charge pour garantir l'interopรฉrabilitรฉ. Cela permet l'intรฉgration de composants et de bibliothรจques รฉcrits dans diffรฉrents langages au sein d'une seule application.
Avantages de lโinfrastructure linguistique commune

L'infrastructure de langage commun (CLI) offre de nombreux avantages qui amรฉliorent le dรฉveloppement et l'exรฉcution de logiciels dans divers langages de programmation. Ces avantages contribuent ร accroรฎtre lโefficacitรฉ, lโinteropรฉrabilitรฉ et la maintenabilitรฉ du processus de dรฉveloppement :
- Interopรฉrabilitรฉ. CLI permet ร diffรฉrents langages de programmation de fonctionner ensemble de maniรจre transparente. Cela permet aux dรฉveloppeurs d'utiliser le meilleur langage pour chaque tรขche spรฉcifique au sein d'une seule application, facilitant ainsi la collaboration et la rรฉutilisation du code.
- Indรฉpendance de la plateforme. Les programmes รฉcrits ร l'aide de CLI peuvent s'exรฉcuter sur diverses plates-formes matรฉrielles et logicielles sans modification. Cette compatibilitรฉ multiplateforme garantit que les applications peuvent atteindre un public plus large et s'adapter facilement ร diffรฉrents environnements.
- Systรจme de type unifiรฉ. Le systรจme de types communs (CTS) dans CLI fournit un cadre cohรฉrent pour dรฉfinir et utiliser les types de donnรฉes. Cette standardisation rรฉduit les erreurs liรฉes au type et simplifie la manipulation des donnรฉes dans toutes les langues.
- Sรฉcuritรฉ. CLI comprend un modรจle de sรฉcuritรฉ robuste qui permet de protรฉger les applications contre diverses menaces. Il applique la sรฉcuritรฉ et la vรฉrification de l'accรจs au code, garantissant que seul le code sรปr et autorisรฉ est exรฉcutรฉ.
- Exรฉcution maรฎtrisรฉe. Le systรจme d'exรฉcution virtuelle (VES) gรจre l'exรฉcution des programmes, fournissant des services tels que le garbage collection, la gestion des exceptions et la gestion des ressources. Cet environnement gรฉrรฉ rรฉduit le risque de fuites de mรฉmoire et amรฉliore la stabilitรฉ des applications.
- Optimisation des performances. La CLI inclut des fonctionnalitรฉs qui optimisent les performances, telles que la compilation juste ร temps (JIT). Cela traduit le code de langue intermรฉdiaire en code machine natif ร d'exรฉcution, amรฉliorant la vitesse et l'efficacitรฉ d'exรฉcution.
- Dรฉveloppement flexabilitรฉ. En prenant en charge plusieurs langages de programmation, CLI offre aux dรฉveloppeurs le flexpossibilitรฉ de choisir les meilleurs outils et langages pour leurs projets. Cela favorise lโinnovation et permet aux รฉquipes de tirer parti efficacement de lโexpertise et des ressources existantes.