Articles

Langage de script

Les langages de script peuvent être classés en plusieurs types différents, avec un degré considérable de chevauchement entre les types.

Les langages de colleEdit

Cette section ne cite aucune source. Veuillez aider à améliorer cette section en ajoutant des citations à des sources fiables. Le matériel non sourcé peut être contesté et supprimé. (Mars 2007) (Learn how and when to remove this template message)

Le scripting est souvent opposé à la programmation système, comme dans la dichotomie d’Ousterhout ou « programmation dans le grand et programmation dans le petit ». Dans cette optique, le scripting est du code glue, reliant des composants logiciels, et un langage spécialisé à cet effet est un langage glue. Les pipelines et les scripts shell sont des exemples archétypaux de langages de colle, et Perl a été initialement développé pour remplir ce même rôle. Le développement Web peut être considéré comme une utilisation des langages de collage, assurant l’interface entre une base de données et un serveur Web. Mais si une quantité substantielle de logique est écrite en script, il est préférable de le caractériser simplement comme un autre composant logiciel, et non comme une « colle ».

Les langages glue sont particulièrement utiles pour écrire et maintenir :

  • des commandes personnalisées pour un shell de commande ;
  • des programmes plus petits que ceux qui sont mieux implémentés dans un langage compilé ;
  • des programmes « enveloppeurs » pour des exécutables, comme un fichier batch qui déplace ou manipule des fichiers et fait d’autres choses avec le système d’exploitation avant ou après l’exécution d’une application comme un traitement de texte, un tableur, une base de données, un assembleur, un compilateur, etc.
  • scripts qui peuvent changer ;
  • Développement rapide d’une application d’une solution éventuellement implémentée dans un autre langage, généralement compilé.

Exemples de langages de colle :

Les macro-langages exposés aux composants du système d’exploitation ou des applications peuvent servir de langages de colle. Il s’agit notamment de Visual Basic for Applications, WordBasic, LotusScript, CorelScript, Hummingbird Basic, QuickScript, Rexx, SaxBasic et WinWrap Basic. D’autres outils comme AWK peuvent également être considérés comme des langages de colle, tout comme n’importe quel langage implémenté par un moteur de script hôte Windows (VBScript, JScript et VBA par défaut dans Windows et des moteurs tiers comprenant des implémentations de Rexx, Perl, Tcl, Python, XSLT, Ruby, Modern Pascal, Delphi et C). Une majorité d’applications peuvent accéder aux composants du système d’exploitation et les utiliser via les modèles d’objets ou ses propres fonctions.

D’autres appareils comme les calculatrices programmables peuvent également disposer de langages de collage ; les systèmes d’exploitation des PDA comme Windows CE peuvent disposer d’outils de macro natifs ou tiers qui collent les applications entre elles, en plus des implémentations des langages de collage courants – notamment Windows NT, DOS et certains shells Unix, Rexx, Modern Pascal, PHP et Perl. Selon la version du système d’exploitation, WSH et les moteurs de script par défaut (VBScript et JScript) sont disponibles.

Les calculatrices programmables peuvent être programmées dans des langages de colle de trois manières. Par exemple, la TI-92 de Texas Instruments, par défaut d’usine peut être programmée avec un langage de script de commande. L’inclusion du langage de script et de colle Lua dans la série de calculatrices TI-NSpire pourrait être considérée comme un successeur de celui-ci. Les principaux langages de programmation de haut niveau intégrés à la plupart des calculatrices graphiques (le plus souvent des variantes de Basic, parfois des dérivés de Lisp et, plus rarement, des dérivés de C) permettent dans de nombreux cas de coller ensemble des fonctions de la calculatrice, comme des graphiques, des listes, des matrices, etc. Des implémentations tierces d’une version plus complète de Basic, qui se rapprochent des variantes listées comme langages de collage dans cet article, sont disponibles – et des tentatives d’implémentation de Perl, Rexx, ou de divers shells de systèmes d’exploitation sur les calculatrices graphiques TI et HP sont également mentionnées. Les compilateurs croisés C basés sur PC pour certaines des machines TI et HP utilisés avec des outils qui convertissent entre C et Perl, Rexx, AWK, et les scripts shell vers Perl, Modern Pascal, VBScript vers et depuis Perl rendent possible l’écriture d’un programme dans un langage glue pour une implémentation éventuelle (en tant que programme compilé) sur la calculatrice.

Langages d’éditeurEdit

Un certain nombre d’éditeurs de texte supportent les macros écrites soit en utilisant un langage macro intégré à l’éditeur, par exemple, L’éditeur SemWare (TSE), vi improved (VIM), soit en utilisant une implémentation externe, par exemple, XEDIT, ou les deux, par exemple, KEDIT. Parfois, les éditeurs de texte et les macros d’édition sont utilisés sous les couvertures pour fournir d’autres applications, par exemple, FILELIST et RDRLIST dans CMS .

Langages de contrôle des tâches et shellsEdit

Article principal : Script shell

Une classe majeure de langages de script s’est développée à partir de l’automatisation du contrôle des tâches, qui concerne le démarrage et le contrôle du comportement des programmes système. (En ce sens, on peut considérer les shells comme des descendants du JCL, ou Job Control Language, d’IBM, qui était utilisé exactement dans ce but). Les interpréteurs de bon nombre de ces langages se doublent d’interpréteurs de ligne de commande, comme le shell Unix ou le COMMAND.COM de MS-DOS. D’autres, comme AppleScript proposent l’utilisation de commandes de type anglais pour construire des scripts.

Scripts GUIEdit

Avec l’avènement des interfaces graphiques, un type spécialisé de langage de script est apparu pour contrôler un ordinateur. Ces langages interagissent avec les mêmes fenêtres graphiques, menus, boutons, et ainsi de suite, que le ferait un utilisateur humain. Ils le font en simulant les actions d’un utilisateur. Ces langages sont généralement utilisés pour automatiser les actions de l’utilisateur. Ces langages sont également appelés « macros » lorsque le contrôle se fait par des pressions de touches ou des clics de souris simulés, ainsi que par des tapotements ou des pressions sur un écran tactile.

Ces langages pourraient en principe être utilisés pour contrôler n’importe quelle application GUI ; mais, en pratique, leur utilisation est limitée car elle nécessite un support de l’application et du système d’exploitation. Il existe quelques exceptions à cette limitation. Certains langages de script GUI sont basés sur la reconnaissance d’objets graphiques à partir des pixels de l’écran. Ces langages de script GUI ne dépendent pas du support du système d’exploitation ou de l’application.

Lorsque l’interface graphique fournit les interfaces appropriées, comme dans l’IBM Workplace Shell, un langage de script générique, par exemple OREXX, peut être utilisé pour écrire des scripts GUI.

Langages spécifiques à l’applicationEdit

Les langages spécifiques à l’application peuvent être divisés en plusieurs catégories différentes, à savoir .c’est-à-dire les langages d’application basés sur l’autonomie (exécutable) ou les langages spécifiques aux applications internes (postscript, xml, gscript comme certains des scripts largement distribués, respectivement mis en œuvre par Adobe, MS et Google) entre autres comprennent un langage de script idiomatique adapté aux besoins de l’utilisateur de l’application. De même, de nombreux systèmes de jeux informatiques utilisent un langage de script personnalisé pour exprimer les actions programmées des personnages non joueurs et de l’environnement du jeu. Les langages de ce type sont conçus pour une seule application et, bien qu’ils puissent ressembler superficiellement à un langage général spécifique (par exemple, QuakeC, modelé sur C), ils possèdent des caractéristiques personnalisées qui les distinguent. Emacs Lisp, bien qu’étant un dialecte de Lisp entièrement formé et capable, contient de nombreuses caractéristiques spéciales qui le rendent très utile pour étendre les fonctions d’édition d’Emacs. Un langage de script spécifique à une application peut être vu comme un langage de programmation spécifique à un domaine spécialisé dans une seule application.

Langages d’extension/embeddablesEdit

Un certain nombre de langages ont été conçus dans le but de remplacer les langages de script spécifiques à une application en étant embarquables dans les programmes d’application. Le programmeur de l’application (travaillant en C ou dans un autre langage système) inclut des « crochets » où le langage de script peut contrôler l’application. Ces langages peuvent être techniquement équivalents à un langage d’extension spécifique à une application, mais lorsqu’une application intègre un langage « commun », l’utilisateur a l’avantage de pouvoir transférer ses compétences d’une application à l’autre. Une alternative plus générique consiste simplement à fournir une bibliothèque (souvent une bibliothèque C) qu’un langage à usage général peut utiliser pour contrôler l’application, sans modifier le langage pour le domaine spécifique.

JavaScript a commencé comme et est principalement encore un langage de script à l’intérieur des navigateurs web ; cependant, la standardisation du langage en tant qu’ECMAScript l’a rendu populaire en tant que langage embarquable à usage général. En particulier, l’implémentation SpiderMonkey de Mozilla est intégrée dans plusieurs environnements tels que le moteur de widgets de Yahoo ! D’autres applications embarquant des implémentations ECMAScript incluent les produits Adobe Flash (ActionScript) et Adobe Acrobat (pour le scriptage de fichiers PDF).

Tcl a été créé en tant que langage d’extension, mais il a fini par être utilisé plus fréquemment en tant que langage à usage général dans des rôles similaires à ceux de Python, Perl et Ruby. D’autre part, Rexx a été créé à l’origine comme un langage de contrôle des tâches, mais est largement utilisé comme un langage d’extension ainsi qu’un langage à usage général. Perl est un langage polyvalent, mais avait le dialecte Oraperl (1990), consistant en un binaire Perl 4 avec Oracle Call Interface compilé dedans. Celle-ci a cependant été remplacée depuis par une bibliothèque (module Perl), DBD::Oracle.

D’autres applications complexes et orientées tâches peuvent incorporer et exposer un langage de programmation intégré pour permettre à leurs utilisateurs d’avoir plus de contrôle et leur donner plus de fonctionnalités que ce qui peut être disponible via une interface utilisateur, aussi sophistiquée soit-elle. Par exemple, les outils de création 3D Autodesk Maya intègrent le langage embarqué Maya, ou Blender qui utilise Python pour remplir ce rôle.

Certains autres types d’applications qui ont besoin d’un ajout de fonctionnalités plus rapide ou de cycles de mise au point et d’exécution (par exemple, les moteurs de jeux) utilisent également un langage embarqué. Pendant le développement, cela leur permet de prototyper des fonctionnalités plus rapidement et de les tweaker plus librement, sans que l’utilisateur ait besoin d’avoir une connaissance intime des rouages de l’application ou de la reconstruire après chaque tweak (ce qui peut prendre un temps considérable). Les langages de script utilisés à cette fin vont des plus courants et des plus célèbres Lua et Python à des langages moins connus comme AngelScript et Squirrel.

Ch est une autre option de script compatible avec le C que l’industrie peut intégrer dans des programmes d’application C/C++.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *