Qu'est-ce que l'infrastructure linguistique commune?
L'infrastructure de langage commun (CLI) est un ensemble de normes techniques internationales favorisant l'interopérabilité du langage de programmation. La CLI permet également à de nombreux langages de haut niveau de développer des applications indépendantes des plates-formes et des architectures. Il existe plus de 30 langages de programmation regroupés à cet effet et utilisant quatre divisions de spécifications de programmation en langage commun pour se conformer à la CLI.
L'utilisation de ce qu'on appelle un système de type commun (CTS), en utilisant un ensemble de types de données et d'opérations, ainsi que des métadonnées sur les structures de programmation, permet l'écriture de code multilingue. La CLI compile les langages dans un langage intermédiaire commun (CIL) et, à partir de celui-ci, communique les aspects de l’application au langage de la machine d’assemblage, qui s’adresse au matériel. En outre, il existe des spécifications de langage commun (CLS), qui constituent un ensemble de règles de base à utiliser par tous les langages cherchant une interopérabilité, et un système d'exécution virtuel (VES) pour le chargement, l'exécution et la génération de codes d'exécution pour tous les programmes compatibles CLI. .
La plupart des langages conformes à la CLI se compilent directement dans le CIL à l'aide du Common Language Runtime (CLR). Une fois compilé et mis en cache, un compilateur juste-à-temps s'approprie le code machine de l'architecture existante. La construction du code machine d'assemblage peut également être construite en avance sur le CLR avec un compilateur en avance.
Pour que les langages compatibles CLI tirent parti de la spécificité des objets, l'infrastructure de langage commun spécifie que les objets doivent uniquement exposer les fonctions qu'ils partagent avec les autres langages compatibles CLI lors de leur appel. Les composants de code développés pour n'utiliser que les types de données acceptés dans le CTS sont dits conformes à la CLI et accessibles à tous les autres langages conformes à la CLI. De plus, toute construction d'un langage qui ne peut pas être vérifiée rapidement par le type safety du code est exclue du CLS, de sorte que seuls les codes vérifiables peuvent être considérés comme conformes au CLS.
Certaines fonctionnalités de programmation sont communes aux compilateurs et aux développeurs, tandis que d'autres ne sont disponibles que pour les compilateurs. La liste est longue et regorge de fonctionnalités utiles. Une fonctionnalité disponible uniquement pour les compilateurs est la suivante: mots-clés fournissant des identifiants de référence et pouvant remplacer les méthodes virtuelles par des noms qui sont des mots-clés. Une fonctionnalité disponible à la fois pour les compilateurs et les développeurs comprend: les fonctionnalités de modificateur qui indiquent qu'une propriété ainsi que ses évaluateurs doivent être tous «statiques», doivent tous être «virtuels», doivent tous être «instance».
Les programmes d'implémentation sont destinés aux ordinateurs de bureau, serveurs, appareils mobiles et consoles de jeux. Les programmes d'amélioration de la vision par ordinateur et les kits d'outils de machine virtuelle de bas niveau sont également développés à partir de langages compatibles avec l'infrastructure de langage commun. Les environnements d'exécution d'infrastructure de langage commun allouent les ressources système et appellent les périphériques efficacement, même s'ils sont indépendants de la plate-forme.