Interprète (informatique) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.
image:Langage_progr.png
Langages à objets
C++ - C# - D
Delphi - Eiffel - Groovy
Java - Lisaac - Python - Ruby
Simula - Smalltalk
Visual Basic - WLangage
Langages impératifs
APL - ASP - Assembleur (Un langage d'assemblage ou langage assembleur ou simplement assembleur par abus de langage,...)
BASIC - C (Le C++ est un langage de programmation permettant la programmation sous de multiples paradigmes...) - Cobol (COBOL est un langage de programmation de troisième génération créé en 1959...) - Natural (Natural est un langage de programmation semi-compilé, édité par la société...)
Forth - Fortran - Limbo
Logo - Pascal - Perl - PHP
Langages fonctionnels
Haskell (Haskell est un langage de programmation fonctionnel. Il est fondé sur le lambda-calcul et la...) - ML/OCaml
Lisp/Common Lisp
Scheme - XSLT
Langages déclaratifs
Clips - Prolog (Prolog est l’un des principaux langages de programmation logique inventé à...)
Langages concurrents
Ada 95 - Erlang
Voir aussi
Conception - Codage (De façon générale un codage permet de passer d'une représentation des...)
Tests - Optimisations

En informatique (L´informatique - contraction d´information et automatique - est le domaine...), un interprète (parfois appelé, à tort, " interpréteur " par mauvaise traduction de l'anglais) est un outil (Un outil est un objet finalisé utilisé par un être vivant dans le but d'augmenter son...) ayant pour tâche d'analyser, de traduire et d'exécuter un programme écrit dans un langage informatique (On appelle langage informatique un langage formel utilisé lors de la conception, la mise en...). De tels langages sont dits langages interprétés.

L'interprète est capable de lire le code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un...) d'un langage sous forme de script, habituellement un fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un...) texte, et d'en exécuter les instructions après une analyse syntaxique (L'analyse syntaxique consiste à mettre en évidence la structure d'un texte,...) du contenu. Généralement ces langages textuels sont appelés des langages de programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent...). Cette interprétation conduit à une exécution d'action ou à un stockage de contenu ordonné par la syntaxe textuelle.

L'interprétation repose sur l'exécution dynamique (Le mot dynamique est souvent employé désigner ou qualifier ce qui est relatif au mouvement. Il...) du programme par un autre programme (l'interprète), plutôt que sur sa conversion en un autre langage (par exemple le langage machine) ; elle évite la séparation (D'une manière générale, le mot séparation désigne une action consistant à séparer quelque...) du temps (Le temps est un concept développé par l'être humain pour appréhender le...) de conversion et du temps d'exécution, qui sont simultanés.

On différencie un programme dit script, d'un programme dit compilé :

  • Un programme script est exécuté a partir du fichier source via un interpréteur de script (En informatique, un interprète (parfois appelé, à tort, « interpréteur » par mauvaise...).
  • Un programme compilé est exécuté a partir d'un bloc en langage machine (Le langage machine est la suite de bits qui est interprétée par le processeur de l'ordinateur...) issu de la traduction du fichier source.

Le cycle d'un interprète est le suivant :

  • lire et analyser une instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une...) (ou expression) ;
  • si l'instruction est syntaxiquement correcte, l'exécuter (ou évaluer l'expression) ;
  • passer (Le genre Passer a été créé par le zoologiste français Mathurin Jacques...) à l'instruction suivante.

Ainsi, contrairement au compilateur (Un compilateur est un programme informatique qui traduit un langage, le langage source, en un...), l'interprète exécute les instructions du programme (ou en évalue les expressions), au fur (Fur est une petite île danoise dans le Limfjord. Fur compte environ 900 hab. . L'île...) et à mesure de leur lecture pour interprétation. Du fait de cette phase (Le mot phase peut avoir plusieurs significations, il employé dans plusieurs domaines et...) sans traduction préalable, l'exécution d'un programme interprété est généralement plus lente (La Lente est une rivière de la Toscane.) que le même programme compilé. La plupart des interprètes n'exécutent plus la chaîne de caractères (En informatique, une chaîne de caractères est une suite ordonnée de caractères....) représentant le programme, mais une forme interne (En France, ce nom désigne un médecin, un pharmacien ou un chirurgien-dentiste, à la...), telle qu'un arbre (Un arbre est une plante terrestre capable de se développer par elle-même en hauteur, en...) syntaxique.

En pratique, il existe une continuité (En mathématiques, la continuité est une propriété topologique d'une fonction....) entre interprètes et compilateurs. Même dans les langages compilés, il subsiste souvent une part interprétée (souvent les formats d'impressions 'FORMAT' de Fortran, 'printf (printf (pour l'anglais print formatted, soit « imprimer formaté ») est une...)' de C…, restent interprétés). Réciproquement, la plupart des interprètes utilisent des représentations internes intermédiaires (arbres syntaxiques abstraits, ou même code octet) et des traitements (analyses lexicale et syntaxique) ressemblant à ceux des compilateurs. Enfin, certaines implémentations de certains langages (par exemple SBCL pour Common Lisp) sont interactifs comme un interprète, mais traduisent dès que possible le texte d'un bout de programme en du code machine directement exécutable par le processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de...). Le caractère interprétatif ou compilatoire est donc propre à une réalisation d'un langage de programmation (Un langage de programmation est un langage informatique, permettant à un être humain...), et pas au langage lui-même.

L'intérêt des langages interprétés réside principalement dans la facilité de programmation et dans la portabilité (Selon le contexte, le mot portabilité peut avoir plusieurs significations :). Les langages interprétés facilitent énormément la mise au point (Graphie) des programmes car ils évitent la phase de compilation, souvent longue, et limitent les possibilités de bogues. Il est en général possible d'exécuter des programmes incomplets, ce qui facilite le développement rapide d'applications ou de prototypes d'applications. Ainsi, le langage BASIC fut le premier langage interprété à permettre au grand public d'accéder à la programmation, tandis que le premier langage de programmation moderne interprété est Lisp.

La portabilité permet d'écrire un programme unique, pouvant être exécuté sur diverses plate-formes sans changements, pourvu qu'il existe un interprète spécifique à chacune des ces plate-formes matérielles.

Un certain nombre (La notion de nombre en linguistique est traitée à l’article « Nombre...) de langages informatiques sont aujourd'hui mis en œuvre au moyen d'une machine virtuelle (Le sens originel de machine virtuelle (ou Virtual Machine (VM) en anglais) est la création de...) applicative. Cette technique est à mi-chemin entre les interprètes tels que décrits ici et les compilateurs. Elle offre la portabilité des interprètes avec une bonne efficacité. Par exemple, des portages de Java, Lisp, Scheme, Ocaml, Perl (Parrot), Python, Ruby, Lua (Lua est un langage de script libre, réflexif et impératif.), C, etc. sont faites via une machine virtuelle.

L'interprétation abstraite (inventée par Patrick et Radhia Cousot) est une technique et un modèle d'analyse statique (Le mot statique peut désigner ou qualifier ce qui est relatif à l'absence de mouvement. Il peut...) de programmes qui parcourt, un peu à la manière d'un interprète, le programme analysé en y remplaçant les valeurs par des abstractions. Par exemple, les valeurs des variables entières sont abstraites par des intervalles d'entiers, ou des relations algébriques entre variables.

Historique

Avec l'apparition du langage compilé Pascal et de compilateurs commerciaux rapides comme Turbo Pascal, les langages interprétés connurent à partir du milieu des années 1980 un fort déclin. Trois éléments changèrent la donne dans les années 1990 :

  • avec la nécessité d'automatiser rapidement certaines tâches complexes, des langages de programmation interprétés (en fait, semi-interprétés) de haut niveau comme, entre autres, Tcl, Ruby, Perl ou Python se révélèrent rentables ;
  • la puissance (Le mot puissance est employé dans plusieurs domaines avec une signification particulière :) des machines, qui doublait tous les dix-huit mois (Le mois (Du lat. mensis «mois», et anciennement au plur. «menstrues») est une période de temps...) en moyenne (La moyenne est une mesure statistique caractérisant les éléments d'un ensemble de...) (selon la loi de Moore), rendait les programmes interprétés des années 1990 d'une rapidité comparable à celle des programmes compilés des années 1980 ;
  • il est bien plus rapide de faire évoluer un programme interprété. Or la vague (Une vague est un mouvement oscillatoire de la surface d'un océan, d'une mer ou d'un lac. Les...) Internet (Internet est le réseau informatique mondial qui rend accessibles au public des services...) demandait une réponse très rapide aux nouveaux besoins du marché. amazon.com fut, dans sa première version, développé largement en Perl. Smalltalk (Smalltalk est un langage de programmation orienté objet, réflexif et dynamiquement...) permettait un prototypage très rapide d'applications.

Utilisations des langages interprétés

Les langages interprétés trouvent de très nombreuses utilisations :

  • dans le domaine éducatif, les langages interprétés permettent de se concentrer sur les algorithmes et les structures de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent...), et non sur les particularités de tel ou tel langage.
  • les calculs scientifiques ne demandant pas de calcul intensif (itérations sur de très grandes matrices, par exemple) peuvent s'écrire avec profit dans un langage interprété. Ils permettent d'appeler des algorithmes de calcul performants précompilés. Les systèmes de calcul symbolique utilisent aussi cette possibilité ;
  • les interprètes de ligne de commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un...) (désignés par le nom shell dans la terminologie Unix). Ces interprètes sont capables de comprendre des commandes frappées sur un clavier ou en provenance d'une autre source. Ils disposent d'une syntaxe spécifique à chaque système d'exploitation, et permettent de gérer les ressources matérielles d'une machine (disques, mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir...) centrale, entrées/sorties, etc.) ainsi que la communication (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle,...) entre les programmes. Rexx est le langage de commandes des ordinateurs centralisés d'IBM (International Business Machines Corporation (IBM) est une société multinationale américaine...), tandis que les Bourne shell (Le Bourne shell ou sh, était le shell par défaut de la version 7 d'Unix, il remplaçait le...), C-shell, Korn shell (Le Korn shell ou ksh est un shell Unix développé par David Korn au début des années 1980 (la...) sont les shells les plus courants sous Unix ; quant au MS-DOS (MS-DOS (abréviation de Microsoft Disk Operating System) est un système d'exploitation...), le plus rudimentaire des interprètes de ligne de commande, il est propre aux systèmes d'exploitation de Microsoft (Microsoft Corporation (NASDAQ : MSFT) est une multinationale américaine de solutions...). Des langages de programmation comme Perl ou Rexx sont souvent installés pour disposer d'un environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et...) plus puissant et plus convivial que les shells d'origine. On conçoit que la compilation traditionnelle présenterait peu d'intérêt pour des commandes :
    • dont chacune est exécutée en moyenne une fois ;
    • ou dont la limitation de performance provient de questions d'accès aux fichiers, et non de calcul ;
  • le langage SQL (Standard Query Language) est un langage interprété standardisé qui permet de mettre à jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la...) ou extraire des informations contenues dans des bases de données ;
  • les navigateurs web reçoivent des instructions symboliques et les exécutent directement. Les navigateurs courants savent tous interpréter du code HTTP (HyperText Transfer Protocol) pour les instructions de transfert d'une machine à l'autre, du code HTML (HyperText Markup Langage) pour les descriptions des pages web, et du Javascript (JavaScript est un langage de programmation de scripts principalement utilisé dans les pages...) pour une programmation plus élaborée, offrant la possibilité de manipuler des variables plus ou moins complexes, des structures de contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de...) et de manipuler les différents objets entrants dans la composition d'une page web (Une page Web est une ressource du World Wide Web conçue pour être consultée par des...). Ces pages peuvent être statiques (elles sont écrites une fois pour toutes) ou générées dynamiquement par le serveur qui produit le code HTML au moment de la requête (Le mot requête, synonyme de demande, est employé dans les domaines suivants :). Il peut ainsi adapter la page en fonction du contexte (Le contexte d'un évènement inclut les circonstances et conditions qui l'entourent; le...) d'exécution. Les langages les plus couramment utilisés pour la génération dynamique de page web sont Perl, PHP et ASP ;
  • de nombreux programmes incluent un langage afin d'automatiser certaines actions ou de créer de nouvelles fonctionnalités. Un des langages les plus utilisés pour cela est Scheme, une variante de Lisp. Le langage de description XML est aussi fortement utilisé pour le formatage des données, que ce soit au niveau de l'interface (Une interface est une zone, réelle ou virtuelle qui sépare deux éléments. L’interface...) homme-machine, au niveau du transfert de données ou de leur écriture sous forme de fichiers. Dans ce domaine, on trouve également Perl, Python ou Tcl ;
  • le langage PostScript (Le PostScript est un langage informatique spécialisé dans la description de pages, mis au...), langage permettant la description de graphiques vectoriels (propriété de la société Adobe), qui est souvent implémenté dans les imprimantes graphiques, les tables traçantes et les photocomposeuses ;
  • il existe des extensions permettant la programmation rapide d'interfaces graphiques à l'aide de langages interprétés. Le plus répandu est Tcl/Tk, mais il existe également Python/Tk, Python/wxWidgets, Perl/wxWidgets Python/Qt ou encore Gambas ;
  • dans le monde (Le mot monde peut désigner :) industriel, de plus en plus de machines sont pilotables par un langage interprété : les robots industriels, les machines-outils (APT, langage ISO (ou blocs)), les traceurs de plan, souvent pilotés en PostScript.
Page générée en 0.079 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise