Multilangage

Un programme multilangage (également écrit multi-langage) est un programme conçu pour fonctionner avec différents langages de programmation. L'usage de ce terme se retrouve dans deux cas :

  • soit le code source du programme est conforme à la syntaxe de plusieurs langages de programmation ;
  • soit le programme permet de travailler avec plusieurs langages différents.

Exécution multilangage

Un code source peut être écrit de sorte qu'il respecte la syntaxe de plusieurs langages de programmation. Il s'agit le plus souvent d'un défi ou amusement, au même titre que l'écriture d'un quine.

Un polyglot est un code source qui peut être interprété selon différents langages, et qui produit la même exécution avec chacun d'entre eux. Par exemple, le code source suivant peut être lu comme un programme en C, en PHP et en Bash :

#define a /*
#<?php
echo "\010Hello, world!\n";// 2> /dev/null > /dev/null \ ;
// 2> /dev/null; x=a;
$x=5; // 2> /dev/null \ ;
if (($x))
// 2> /dev/null; then
return 0;
// 2> /dev/null; fi
#define e ?>
#define b */
#include <stdio.h>
#define main() int main(void)
#define printf printf(
#define true )
#define function
function main()
{
printf "Hello, world!\n"true/* 2> /dev/null | grep -v true*/;
return 0;
}
#define c /*
main
#*/

Application multilangage

Certains logiciels permettent de travailler avec différents langages de programmation. C'est le cas des générateurs de documentation, de CPD (détecteur de copier-coller) ou même de compilateurs tels GCC ou LLVM car les optimisations lors de la phase de compilation sont indépendantes du langage d'origine. Certaines plates-formes peuvent également accueillir plusieurs langages, telles les machines virtuelles Java, .NET ou Parrot (les deux dernières ayant explicitement été prévues en ce sens).

Voir aussi

  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.