L'infrastructure de langage commun (CLI) est un ensemble de normes techniques internationales favorisant l'interopérabilité des langages de programmation informatique. CLI permet aussi de nombreux langages de haut niveau pour développer des applications qui sont indépendants des plates-formes et d'architectures. Il ya plus de 30 langages de programmation regroupées à cet effet et faisant usage de quatre divisions de spécifications communes du langage de programmation pour devenir compatible CLI.
Faisant usage de ce qu'on appelle un système de type commun (CTS), en utilisant un ensemble de types de données et les opérations et les informations de métadonnées sur les structures de programmation permettent l'écriture de code inter-langues. La CLI compile langues dans un langage intermédiaire commun (CIF), et de CIL, communique les aspects applicatifs en langage machine de montage, qui porte sur le matériel. En outre, il existe des spécifications CLS (Common Langage), qui sont une des règles de base établies pour une utilisation par n'importe quelle langue la recherche d'interopérabilité, et d'un système virtuel d'exécution (VES) pour le chargement, l'exécution et la génération de codes d'exécution de tous les programmes compatibles CLI .
La plupart des langages compatibles CLI-compiler directement à la CIL en utilisant le Common Langage Runtime (CLR). Après avoir compilé et mis en cache, un compilateur juste-à-temps s'approprie alors le code machine à partir de l'architecture existante. La construction du code assembleur machine peut également être construit avant le CLR avec un compilateur en avance sur le temps.
Pour CLI langages compatibles pour profiter de la spécificité objet, l'infrastructure langage commun spécifie que les objets ne doivent exposer les caractéristiques qu'ils ont en commun avec les autres langages compatibles CLI lorsqu'ils sont appelés. Composants de code développés d'utiliser uniquement les types de données acceptés dans les CTS sont dit être compatible CLI et accessible à tous les autres langages compatibles CLI. En outre, toute construction d'un langage qui ne peut être vérifiée rapidement par la sécurité de type du code est exclue de la CLS, de sorte que seuls les codes vérifiables peuvent être considéré comme conformes CLS.
Certaines fonctions de programmation sont communes aux deux compilateurs et les développeurs et d'autres sont disponibles pour les compilateurs seulement. La liste est longue et plein de fonctionnalités utiles. Une fonctionnalité disponible uniquement pour les statisticiens est: mots-clés qui fournissent des identificateurs de référencement et qui peuvent redéfinir les méthodes virtuelles avec des noms qui sont des mots-clés. Une caractéristique disponible pour les deux compilateurs et les développeurs comprend: ". Par exemple« caractéristiques modificateurs qui disent que la propriété ainsi que ses assesseurs doivent tous être «statique», doivent tous être «virtuel», doivent tous être
Les programmes de mise en œuvre sont des postes de travail, serveurs, périphériques mobiles et les consoles de jeux. Programmes informatiques amélioration de la vision et des boîtes à outils de bas niveau machines virtuelles sont également développés à partir de l'infrastructure Common Langage langages compatibles. Les temps d'exécution d'infrastructures communes de langue allouer des ressources système et les périphériques appeler efficacement, mais ils sont indépendant de la plateforme.