Qu'est-ce qu'une langue intermédiaire?

Dans la programmation informatique, lorsque le code source lisible par l'homme est analysé par un compilateur, le compilateur traduit souvent les commandes source en une séquence d'instructions qui ne sont pas tout à fait du code de machine natif mais peuvent être traitées, optimisées ou compilées par le compilateur ou d'autres outils logiciels. Les fichiers produits contiennent des instructions qui seraient dans un langage intermédiaire, car le langage utilisé par le compilateur n'est ni significatif pour le système d'exploitation plus large ni le langage utilisé par le programmeur pour écrire le code en premier lieu, mais qui est plutôt un langage qui agit comme un pont entre l'écriture et l'exécution du programme. Un langage intermédiaire est parfois utilisé pour permettre à un compilateur de faire des optimisations très précises afin que le programme fonctionne plus efficacement, mais il peut également être utilisé pour produire des fichiers de sortie qui sont portables entre différents systèmes incompatibles. La syntaxe réelle de la langue peut ressembler à un code machine ou à d'autres types de R non humainBytecode eadable, ou le langage peut être juste un langage de programmation informatique multiplateforme existant.

Lorsqu'il est utilisé pour l'optimisation du compilateur, un compilateur de langage prend chaque instruction dans un fichier de code source et décompose la commande dans la langue intermédiaire. Une seule instruction de programmation lisible par l'homme peut se décomposer en dizaines d'instructions du langage de la machine, de sorte que le langage intermédiaire crée un niveau d'abstraction que le compilateur peut utiliser pour identifier les zones du code où les optimisations peuvent être faites sans d'abord lier le code à n'importe quelle implémentation ou bibliothèque native. Une fois terminé, le fichier de code intermédiaire peut ensuite être compilé plus loin pour fabriquer un fichier binaire natif, ou il peut être exécuté via un autre programme, connu sous le nom d'interprète, qui exécutera le code en le compilant en instructions natives au besoin.

Certaines langues, comme Java®, utilisent un intermeDiate Language pour créer des fichiers compilés optimisés mais également portables vers d'autres systèmes informatiques. Ce type de code est parfois connu sous le nom de bytecode et ressemble au code machine ou à la langue d'assemblage. ByteCode est stocké dans des fichiers d'une manière indépendante de la plate-forme, ce qui signifie qu'elle peut être transférée sur n'importe quel système informatique ou périphérique qui peut exécuter un interprète. Une fois que le bytecode est sur un système, il peut être exécuté en tant que programme interprété, soit il peut être compilé pour s'exécuter nativement sur le système cible.

Dans certains cas, un langage informatique est conçu pour faciliter le programme vers une fin spécifique, comme une application Web interactive, mais les concepteurs ne souhaitent pas inclure des compilateurs, des interprètes ou des plug-ins personnalisés pour différents systèmes. Dans ces cas, le langage intermédiaire du compilateur peut être un langage existant qui a déjà établi des interprètes multiplateformes. Le langage intermédiaire qui en résulte dans ce cas est lisible par l'homme. Un exemple de programme informatiqueLe langage ng qui est également utilisé comme un langage intermédiaire est JavaScript®, qui a l'avantage de pouvoir s'exécuter dans presque tous les navigateurs Web sur n'importe quelle plate-forme, en 2011.

DANS D'AUTRES LANGUES