Présentation

Article

1 - UNE PERSPECTIVE HISTORIQUE

  • 1.1 - Programmer des enchaînements de commandes
  • 1.2 - Administrer un système et analyser les journaux de bord
  • 1.3 - Programmation du web, côté serveur
  • 1.4 - Langages d'extension embarqués
  • 1.5 - Programmation du web, côté client
  • 1.6 - Des langages devenus généralistes
  • 1.7 - Vers une convergence ?

2 - QUELQUES TRAITS DES LANGAGES DE SCRIPTS

  • 2.1 - Gestion automatique de mémoire
  • 2.2 - Typage dynamique
  • 2.3 - Pas de compilation explicite
  • 2.4 - Déclaration optionnelle des variables
  • 2.5 - Expansion de variables
  • 2.6 - Filtrage d'expressions rationnelles
  • 2.7 - Tableaux associatifs

3 - LANGAGES DE SCRIPTS MAJEURS

  • 3.1 - Bash
  • 3.2 - Awk
  • 3.3 - Perl
  • 3.4 - Python
  • 3.5 - Ruby
  • 3.6 - Groovy
  • 3.7 - PHP
  • 3.8 - JavaScript

4 - CONCLUSION

Article de référence | Réf : H3118 v4

Une perspective historique
Langages de scripts

Auteur(s) : Michel MAUNY

Relu et validé le 27 avr. 2016

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

RÉSUMÉ

Les langages de scripts connaissent un succès certain et les plus connus d'entre eux sont très présents sur l'Internet et dans les discussions d'informaticiens. Les langages de scripts sont caractérisés ici, en en donnant une perspective historique et en examinant leurs caractéristiques communes. Les langages actuels ont en effet des racines communes qui permettent de mieux comprendre la logique qui les sous-tend. Quelques-uns des langages de scripts les plus connus sont présentés, avec leurs grands traits, leurs particularités et des exemples.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

ABSTRACT

Scripting languages are rather successful and the best known examples are extremely present on the Internet and in discussions between programmers. This article characterizes scripting languages, by placing them in a historical perspective and examining their common characteristics. Current languages indeed have common roots that allow for a better understanding of their underlying logics. Some of the best known scripting languages are presented, along with their major features and specificities; examples are also provided.

Auteur(s)

  • Michel MAUNY : Directeur de recherche INRIA - Professeur à l'ENSTA-ParisTech

INTRODUCTION

Avec l'avènement de technologies comme celles du web, les langages de scripts connaissent un succès important. Ils permettent la mise en œuvre rapide de programmes quelquefois complexes, grâce à la fois à leurs propres qualités, aux bibliothèques dont ils disposent et à l'efficacité des ordinateurs.

Mais qu'est-ce qu'un script et qu'est-ce qu'un langage de scripts ? Quelles sont les caractéristiques communes aux langages de scripts, et quelles sont les particularités des plus connus d'entre eux ? Commençons d'abord par formuler quelques réponses à ces questions.

Traditionnellement, le terme « script » désigne la transcription du déroulement d'un film ou d'une action. En informatique, les ordinateurs ont vite été en mesure d'enchaîner des exécutions de programmes, et se sont donc dotés de langages pour décrire ces enchaînements. Dès les années 1950, on a appelé « script » la description d'un tel enchaînement de tâches. L'exécution d'un script stocké dans un fichier permettait alors d'exécuter ces enchaînements sans nécessiter la présence de l'opérateur.

Le système d'exploitation Unix a banalisé cette notion en développant un langage interactif dédié à ces écritures de scripts, le « shell », et en le proposant comme interface avec l'utilisateur. Un script shell est un fichier qui peut être rendu exécutable et être paramétré par des arguments, devenant ainsi une nouvelle commande.

Le shell d'Unix n'est qu'un langage de scripts parmi d'autres, mais deux de ses traits sont caractéristiques des langages de cette famille :

  • 1. c'est un langage dont les programmes – les scripts – sont faciles à mettre en œuvre : il n'y a pas de compilation explicite qui soit nécessaire, un script est tout de suite prêt à être exécuté ;

  • 2. c'est un langage doté d'opérations primitives puissantes, telles le filtrage de motifs ou la mise en cascade (pipelining) de commandes, et qui donne accès à une volumineuse bibliothèque, puisqu'un script shell peut utiliser n'importe quelle autre commande Unix comme fonction de bibliothèque.

Face à un langage de programmation classique, le programmeur s'attache à adapter finement ses propres structures de données à son problème, à choisir les constructions offertes par le langage en fonction de leur coût d'exécution afin de maîtriser la complexité de ses algorithmes, à compiler son programme afin de bénéficier des différentes vérifications opérées par le compilateur et d'en produire un exécutable optimisé.

A contrario, l'écriture d'un script doit être rapide, et on attend du langage qu'il fournisse des fonctionnalités de très haut niveau, sous la forme de constructions du langage, de primitives ou encore de bibliothèques, afin que le problème à résoudre le soit par un script aussi court que possible. De la même façon, certaines techniques de développement peuvent nécessiter l'exécution de scripts dont certains composants restent à définir, par exemple pour en tester ou en présenter certains aspects. Une telle flexibilité amène souvent les concepteurs de langages de scripts à les doter d'une syntaxe légère et à renoncer aux vérifications effectuées par les compilateurs des langages traditionnels.

Ainsi, comme nous le verrons tout au long de cet article, les langages dits « de scripts » possèdent au moins ces deux propriétés :

  • leurs programmes, les scripts, sont d'une mise en œuvre aisée afin de pouvoir être exécutés dès qu'ils sont écrits. Ainsi, les langages de scripts seront généralement des langages dont les programmes ne subissent pas de transformation explicite avant l'exécution : ils sont ou bien compilés à la volée à chaque exécution, ou bien exécutés directement, sans compilation préalable ;

  • ils sont équipés de puissantes primitives et/ou d'une large bibliothèque pour programmer rapidement et de façon concise des tâches complexes.

Bien sûr, pour être reconnu comme un langage de scripts, il n'est pas suffisant de posséder ces deux propriétés : il faut aussi le revendiquer ! En effet, quelques langages de programmation auraient très bien pu être ou devenir des langages de scripts, mais, apparus trop tôt, catalogués dans une autre famille ou simplement oubliés par la mode, ils n'ont pas bénéficié du mouvement qui a vu naître et qui a popularisé les langages de scripts d'aujourd'hui.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

KEYWORDS

bash   |   perl   |   python   |   ruby   |   groovy   |   JavaScript

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v4-h3118


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

1. Une perspective historique

Une reconstruction brève de l'histoire des langages de script permet de comprendre la situation actuelle comme la résultante d'une tendance à simplifier l'activité de programmation pour en améliorer la productivité.

1.1 Programmer des enchaînements de commandes

L'histoire des langages de scripts remonte presque aux débuts de l'informatique, vers les années cinquante, où il était nécessaire de mettre en relation les fichiers de données et les programmes procédant à leur traitement, ainsi que de séquencer ces exécutions. On parle en Anglais de batch processing, que l'on traduit en Français en « traitement par lots ». Le langage JCL (Job Control Language ) permet la programmation de tels « lots » sur les grands systèmes IBM.

Les années 1960 virent l'apparition des systèmes à temps partagé, dont le système Multics en 1964. L'idée de programmer l'exécution des commandes faisait son chemin et l'utilitaire RUNCOM du système CTSS, puis le langage de commandes de Multics – qui fut le premier à être nommé « shell » – permettaient de calculer les arguments des commandes et d'exécuter des séquences de commandes traitant ces arguments.

Les concepteurs d'Unix dans les années 1970 reprirent la notion de shell de Multics pour en faire l'interface utilisateur des systèmes Unix. Au fil des années, le shell d'Unix devint un vrai langage de programmation dont la version la plus utilisée aujourd'hui est probablement Bash, que l'on trouve notamment sur les Unix libres comme les systèmes GNU/Linux, le système Android, ou les systèmes d'exploitation des machines Apple. Les systèmes Microsoft Windows ont eu eux aussi leurs équivalents du shell avec les célèbres command.com et cmd.exe, capables d'exécuter des scripts dont le nom est suffixé par .BAT et appelés en Anglais batch files (que l'on peut traduire en mauvais franglais par « fichiers batch »).

L'utilitaire RUNCOM est à l'origine du suffixe ou préfixe rc que l'on trouve encore dans certains noms de fichiers actuels.

Le site http://www.multicians.org/shell.html décrit les origines de shell.

L'appelation « shell » provient de la conception des systèmes d'exploitation en couches concentriques à la manière d'un oignon dont le noyau ou kernel forme le cœur. La...

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Une perspective historique
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - DEFFAIX-RÉMY (Ch.) -   Programmation shell sous unix/linux.  -  Éditions ENI, 3e édition, ISBN 2746067145 (2011) http://www.editions-eni.fr.

  • (2) - SWINNEN (G.) -   Apprendre à programmer avec Python 3.  -  Éditions Eyrolles, 2e édition, ISBN 2212127081 (2010) http://www.eyrolles.fr.

  • (3) - FLANAGAN (D.), MATSUMOTO (Y.) -   The ruby programming language.  -  O'Reilly Media, ISBN 0596516177 (2008) http://www.oreilly.com.

  • (4) - KÖENIG (D.) et al -   Groovy in action.  -  Manning Publications, ISBN 193239442 (2007) http://www.manning.com.

  • (5) - DASPET (É.), DE GEYER (C.P.) -   PHP avancé.  -  Éditions Eyrolles, 6e édition, ISBN 2212134355 (2012).

  • (6) - NEGRINO (T.), SMITH (N.) -   JavaScript & Ajax.  -  Éditions CampusPress,...

1 Sites Internet

GARRELS Machtelt, Guide Bash du débutant, Trad. de l'américain par Ykerb https://docplayer.fr/6698033-Guide-bash-du-debutant.html Trad. du livre Bash Guide for Beginners. page consultée le 27 juin 2012.

SWINNEN Gérard, Apprendre à programmer avec Python 3 http://www.inforef.be/swi/download/apprendre_python3.pdf page consultée le 27 juin 2012.

CARRERA Daniel, Apprenez Ruby, Trad. de l'américain par Laurent Sansonetti http://www.ruby-doc.org/docs/beginner-fr/xhtml/ Trad. du tutoriel Learning Ruby, page consultée le 27 juin 2012.

Beginners Tutorial https://beginnersbook.com/ page consultée le 27 juin 2012

User Guide https://docs.groovy-lang.org/docs/next/html/documentation/ page consultée le 27 juin 2012.

VAUTIER Sylvie, PHP : le tutoriel pour grands débutants pressés http://www.sylvie-vauthier.developpez.com/tutoriels/php/grand-debutant/ page consultée le 27 juin 2012.

ROSSOLINI Guillaume, Cours de PHP 5 http://www.grossolini.developpez.com/tutoriels/php/cours/ page consultée le 27 juin 2012.

P. Serge, Introduction au JavaScript http://www.javascript.developpez.com/tutoriels/introduction/ours page consultée le 27 juin 2012.

HAUT DE PAGE

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(233 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS