Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Interprète (informatique) — Wikipédia
Interprète (informatique) — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir Interprète et Interpréteur.

En informatique, un interprète, ou interpréteur (voir infra), est un outil dont la tâche est d'analyser, de traduire et d'exécuter les programmes écrits dans un langage informatique. On qualifie parfois, et abusivement[réf. nécessaire], les langages dont les programmes sont généralement exécutés par un interprète de langages interprétés.

Un interprète se distingue d’un compilateur par le fait qu’il effectue l’analyse et la traduction nécessaires à l'exécution d’un programme donné non pas une fois pour toutes, mais à chaque exécution de ce programme. L’exécution nécessite ainsi de disposer non seulement du programme, mais aussi de l’interprète correspondant.

Principe

[modifier | modifier le code]

L'interprétation repose sur l'exécution dynamique 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 du temps 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é à partir du fichier source via un interprète de script ;
  • un programme compilé est exécuté à partir d'un bloc en langage machine issu de la traduction du fichier source.

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

  • lire et analyser une instruction (ou expression) ;
  • si l'instruction est syntaxiquement correcte, l'exécuter (ou évaluer l'expression) ;
  • passer à l'instruction suivante.

Ainsi, contrairement au compilateur, l'interprète exécute les instructions du programme (ou en évalue les expressions), au fur et à mesure de leur lecture pour interprétation. Du fait de cette phase sans traduction préalable, l'exécution d'un programme interprété est généralement plus lente que le même programme compilé. La plupart des interprètes n'exécutent plus la chaîne de caractères représentant le programme, mais une forme interne, telle qu'un arbre syntaxique.

En pratique, il existe une continuité entre interprètes et compilateurs. 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 caractère interprétatif ou compilatoire est donc propre à l'implémentation d'un langage de programmation, 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é. Les langages interprétés facilitent énormément la mise au point 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 plates-formes sans changements, pourvu qu'il existe un interprète spécifique à chacune de ces plates-formes matérielles.

Un certain nombre de langages informatiques sont aujourd'hui mis en œuvre au moyen d'une machine virtuelle 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, C#, etc. sont faits 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 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

[modifier | modifier le code]

Avec l'apparition du langage 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[réf. nécessaire]. 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 des machines, qui doublait tous les dix-huit mois en moyenne (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 Internet 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 permettait un prototypage très rapide d'applications.

Utilisations des langages interprétés

[modifier | modifier le code]

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, 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 (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 centrale, entrées/sorties, etc.) ainsi que la communication entre les programmes. Rexx est le langage de commandes des ordinateurs centralisés d'IBM, tandis que les Bourne shell, C-shell, Korn shell sont les shells les plus courants sous Unix ; quant au MS-DOS, le plus rudimentaire des interprètes de ligne de commande, il est propre aux systèmes d'exploitation de Microsoft. Des langages de programmation comme Perl ou Rexx sont souvent installés pour disposer d'un environnement 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 (Structured Query Language) est un langage interprété standardisé qui permet de mettre à jour 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 pour une programmation plus élaborée, offrant la possibilité de manipuler des variables plus ou moins complexes, des structures de contrôle et de manipuler les différents objets entrants dans la composition d'une page web. 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. Il peut ainsi adapter la page en fonction du contexte 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 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, 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 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.

Hybrides entre compilateur et interprète

[modifier | modifier le code]

Bien que la distinction entre compilateur et interprète soit réelle, leurs définitions se recoupent parfois et il existe des méthodes intermédiaires entre ces deux techniques.

Les interprètes de bytecode

[modifier | modifier le code]
Article détaillé : Bytecode.

Certains cadriciels comme Java ou .NET pré-compilent le code en un bytecode intermédiaire. Ce bytecode est ensuite interprété ou bien exécuté par une machine virtuelle, pour dans tous les cas, exécuter le programme.

Compilation à la volée

[modifier | modifier le code]
Article détaillé : Compilation à la volée.

Dans un système implémentant une compilation à la volée, le code source est généralement compilé à l'avance ou à la volée (lors de l'exécution) dans une représentation intermédiaire, le bytecode. Le système analyse ensuite en permanence le code en cours d'exécution et identifie des parties du code où la recompilation en code natif l'emporterait sur l’exécution du bytecode.

Terminologie

[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • interprète, sur le Wiktionnaire
  • interpréteur, sur le Wiktionnaire

Ce type d'outil est désigné en anglais par le terme « interpreter ». Alors que les auteurs du premier livre d'enseignement en français sur la théorie des programmes[1] ont proposé « interprète », cela est souvent traduit en français par le calque « interpréteur », ce terme — attesté vers 1970[2] — étant notamment recommandé par l'OQLF[3] et présent dans plusieurs dictionnaires généralistes[4],[5],[2] et spécialisés dans l'informatique[6],[7],[8],[9],[10] ainsi que dans d'autres publications de terminologie[11].

Notes et références

[modifier | modifier le code]
  1. ↑ C. Livercy, Jean-Pierre Finance, Monique Grandbastien, Pierre Lescanne, Pierre Marchand, Roger Mohr, Alain Quéré et Jean-Luc Rémy (préf. C. Pair), Théorie des programmes : Schémas, preuves, sémantique, Paris, Bordas, coll. « Dunod informatique », 1978, 328 p. (ISBN 978-2-04-010516-7 et 2040105166, lire en ligne).
  2. ↑ a et b « interpréteur », sur Usito, Université de Sherbrooke (consulté le 12 juillet 2021).
  3. ↑ « interpréteur », Grand Dictionnaire terminologique, Office québécois de la langue française.
  4. ↑ « interpréteur », dictionnaire Larousse (consulté le 12 juillet 2021).
  5. ↑ « interpréteur », sur dictionnaire.lerobert.com, Dictionnaires Le Robert (consulté le 12 juillet 2021).
  6. ↑ Michel Ginguay, Dictionnaire anglais/français informatique, Dunod, 2005 (ISBN 2-10-008310-4 et 978-2-10-008310-7, OCLC 59569570, BNF 39950455), p. 121 :

    « Interpreter, [...] 2. programme d'interprétation, interpréteur »

    .
  7. ↑ (en) Jacques Hildebert, Dictionary of Information Technology English/French, New York, Hippocrene Books, 1998 (ISBN 978-0-7818-0628-2) ; Dictionnaire des technologies de l'informatique français/anglais, Paris, La Maison du Dictionnaire, 1998, 2702 p. (ISBN 978-2-85608-105-1, présentation en ligne), p. 2020.
  8. ↑ Jean-Guy Grenier, Dictionnaire d'informatique et d'Internet (anglais-français), Paris, La Maison Du Dictionnaire, 2000, 710 p. (ISBN 978-2-85608-136-5, présentation en ligne), p. 358.
  9. ↑ Terry R. Pyper, French Dictionary of Information Technology, Londres, Routledge, 1989, 1re éd., 590 p. (ISBN 978-0-415-00244-8, présentation en ligne), p. 147.
  10. ↑ (nl + en + fr + de + es) P. J. van Swigchem et E. J. Slot, BDI-terminologie: verklarend woordenboek van Nederlandse termen op het gebied van bibliotheek en documentaire informatie, met vertalingen in het Engels, Frans, Duits, Spaans, La Haye, NBD Biblion, 1990, 493 p. (ISBN 978-90-6252-123-4, présentation en ligne), p. 151.
  11. ↑ (en) Anne-Laure Jousse (Université du Maine) et Myriam Bouveret, « Lexical Functions to represent derivational Relations in specialized Dictionaries », Terminology, John Benjamins Publishing Company, vol. 9, no 1,‎ 2003, p. 71-98 (ISSN 0929-9971, lire en ligne) [PDF].

Voir aussi

[modifier | modifier le code]
  • PHP, exemple d'interprète
v · m
Programme informatique
Compilation
  • Analyse lexicale
  • Analyse syntaxique
  • Assemblage
  • Fichier objet
  • Code source
  • Compilateur
  • Décompilateur
  • Édition de liens
  • Identificateur
  • Moteur de production
  • Précompilateur
  • Préprocesseur
Exécution
  • Configuration
  • Interprète
  • Machine virtuelle
  • Offset
  • Portabilité
  • Processus
  • Point d'arrêt
  • Thread
  • Segmentation
Bug
  • Débogueur
  • Dépassement d'entier
  • Soupassement arithmétique
  • Dépassement de pile
  • Dépassement de tampon
  • Dépassement de tas
  • Effet de bord
  • Erreur de segmentation
  • Exception
  • Fuite de mémoire
  • Plantage
  • Test
  • Catégorie
    • Compilateur
    • Bug
v · m
Exécution informatique
Concepts généraux
  • Programme informatique
  • Langage intermédiaire
  • Chaîne de compilation
  • Fichier exécutable
  • Interprétation
  • Environnement d'exécution
Types de code
  • Code source
  • Code objet
  • Bytecode
  • Code machine
  • Microcode
  • Instruction-machine
Compilation
  • Compilation à la volée
  • Compilation anticipée
  • Préprocesseur
  • Compilateur source à source
anticipée
  • GNU Compiler Collection (C et C++)
  • LLVM
  • LDL
  • GHC (Haskell)
  • Javac (Java)
  • Phalanger (PHP)
  • Free Pascal (Pascal)
à la volée
  • V8, SpiderMonkey (Javascript)
  • PyPy (Python)
Machines virtuelles
  • ART
  • CIL (C#, F#, Visual Basic .NET)
  • Machine virtuelle Java
    • HotSpot
    • GraalVM
  • HHVM (PHP)
  • CPython (Python)
v · m
Domaines de l'informatique
Remarque : cette liste s'inspire du système de classification informatique de l'ACM édité en 2012
Matériel
  • Circuit imprimé
  • Périphérique
  • Circuit intégré
  • Intégration à très grande échelle
  • Circuit logique programmable
  • Informatique durable
  • Conception assistée par ordinateur pour l'électronique
Appareil et organisation
d'un système
  • Architecture matérielle
  • Architecture de processeur
  • Machine à calculer
  • Mécanographie
  • Calculateur analogique
  • Calculatrice
  • Calculateur quantique
  • Ordinateur
  • Système embarqué
  • Système temps réel
  • Sûreté de fonctionnement
Réseau
  • Architecture de réseau
  • Protocole de communication
  • Équipement d'interconnexion de réseau informatique
  • Planificateur de réseau (en)
  • Rendement du réseau (en)
  • Service réseau
Organisation du logiciel
  • Interprète
  • Middleware
  • Machine virtuelle
  • Système d'exploitation
  • Qualité logicielle
Théorie et outil (en)
de programmation
  • Paradigme de programmation
  • Langage de programmation
  • Compilateur
  • Langage dédié
  • Langage de modélisation
  • Cadriciel
  • Environnement de développement
  • Gestion de configuration logicielle
  • Bibliothèque logicielle
  • Dépôt
Développement de logiciel
  • Software development process
  • Analyse des exigences
  • Conception de logiciel
  • Assemblage de logiciel (en)
  • Déploiement de logiciel (en)
  • Maintenance du logiciel
  • Équipe de programmation (en)
  • Open source
Théorie du calcul (en)
  • Modèle de calcul
  • Langage formel
  • Théorie des automates
  • Théorie de la complexité
  • Logique (en)
  • Sémantique
Algorithmique
  • Algorithme
  • Conception d'algorithme
  • Analyse de la complexité des algorithmes
  • Algorithme évolutionniste
  • Algorithme probabiliste
  • Géométrie algorithmique
  • Génération procédurale
Mathématiques
de l'informatique
  • Mathématiques discrètes
  • Probabilité
  • Statistique
  • Logiciel mathématique (en)
  • Théorie de l'information
  • Analyse
  • Analyse numérique
Système d'information
  • Base de données
  • Mémoire (informatique)
  • Progiciel
  • Logiciel social
  • Système d'information géographique
  • Système d'aide à la décision
  • Supervision
  • Base de données multimédia
  • Exploration de données
  • Bibliothèque numérique
  • Plateforme
  • Marketing électronique
  • World Wide Web
  • Recherche d'information
Sécurité
  • Cryptographie
  • Méthode formelle
  • Service de sécurité (en)
  • Système de détection d'intrusion
  • Sécurité matérielle (en)
  • Sécurité du réseau
  • Sécurité de l'information
  • Sécurité de l'application (en)
Interactions humain-machine
  • Design numérique
  • Informatique sociale (en)
  • Informatique ubiquitaire
  • Visualisation (en)
  • Accessibilité numérique
Concurrence (en)
  • Programmation concurrente
  • Parallélisme
  • Calcul distribué
  • Multithreading
  • Multiprocesseur
Intelligence artificielle
  • Traitement automatique des langues
  • Représentation des connaissances
  • Vision par ordinateur
  • Planification
  • Optimisation
  • Philosophie de l'intelligence artificielle
  • Intelligence artificielle distribuée
Apprentissage automatique
  • Apprentissage supervisé
  • Apprentissage non supervisé
  • Apprentissage par renforcement
  • Apprentissage multi-tâches (en)
  • Validation croisée
Infographie
  • Animation par ordinateur
  • Animation 2D numérique
  • Animation 3D
  • Rendu photoréaliste
  • Retouche d'image
  • Processeur graphique
  • Réalité mixte
  • Réalité virtuelle
  • Compression d'image
  • Conception paramétrique
Audio informatique
  • Générateur de son programmable
  • Processeur de signal numérique
  • Synthétiseur analogique
  • échantillonnage
  • Séquenceur musical
  • Tracker (musique)
  • Musique assistée par ordinateur
Informatique appliquée
  • Commerce en ligne
  • Logiciel d'entreprise
  • Mathématiques computationnelles
  • Physique numérique
  • Chimie numérique
  • Biologie numérique
  • Sciences sociales numérique (en)
  • Ingénierie numérique
  • Informatique médicale
  • Art numérique
  • Édition électronique
  • Cyberguerre
  • Vote électronique
  • Jeu vidéo
  • Traitement de texte
  • Recherche opérationnelle
  • Technologies éducatives
  • Gestion électronique des documents
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Interprète_(informatique)&oldid=221014110 ».
Catégorie :
  • Programmation informatique
Catégories cachées :
  • Article à référence nécessaire
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id