Article de reference

Langage de script

GDScript dans Godot 3.4 En informatique, un script est un ensemble d'instructions relativement court et simple qui automatise généralement un processus qui serait autrement manu...

GDScript dans Godot 3.4

En informatique, un script est un ensemble d'instructions relativement court et simple qui automatise généralement un processus qui serait autrement manuel. L'action d'écrire un script est appelée programmation de scripts . Un langage de script est un langage de programmation utilisé pour la programmation de scripts.

À l'origine, le scripting se limitait à l'automatisation des interfaces en ligne de commande des systèmes d'exploitation , et les langages étaient relativement simples. Aujourd'hui, le scripting est beaucoup plus répandu et certains langages de script intègrent des fonctionnalités modernes permettant également de développer des applications logicielles .

langage de programmation généraliste ou un langage spécifique à un domaine pour un environnement donné. Lorsqu'il est intégré à une application, il peut être appelé langage d'extension .

Un langage de script est parfois qualifié de langage de programmation de très haut niveau s'il fonctionne à un niveau d'abstraction élevé, ou de langage de contrôle , notamment pour les langages de contrôle des tâches sur les ordinateurs centraux .

Le terme « langage de script » est parfois employé au sens large pour désigner les langages de programmation dynamiques de haut niveau en général. Certains sont des langages strictement interprétés , tandis que d'autres utilisent une forme de compilation. Dans ce contexte, le terme « script » désigne un petit programme écrit dans un tel langage. Typiquement, un script tient dans un seul fichier et ne dépasse pas quelques milliers de lignes de code.

La portée des langages de script est très variable, allant des langages de petite taille aux langages de grande envergure, et des langages hautement spécialisés aux langages de programmation généralistes . Un langage peut initialement être petit et très spécialisé, puis évoluer vers un langage portable et généraliste ; inversement, un langage généraliste peut ultérieurement développer des dialectes spécifiques à un domaine .

Langues notables

AWK , pour le traitement de texte, généralement disponible dans les systèmes d'exploitation de type Unix
  • Batch file language (BAT), for scripting Microsoft Windows
  • Bourne shell, interpreted language for scripting Unix and Unix-likeoperating systems
  • C, via Tiny C Compiler
  • Groovy, Java-like, object-oriented scripting
  • Java, using JBang
  • JavaScript (later: ECMAScript), originally limited to running in a web browser to dynamically modify a web page; later enhanced into a widely portable, general-purpose programming language
  • Linden Scripting Language, custom, extension language for scripting Second Lifevirtual world
  • Lisp, family of general-purpose and extension languages for applications including Emacs Lisp for Emacs
  • Lua, extension language used by many applications
  • Perl, text-processing language that later developed into a general-purpose language; also used as an extension language for various applications
  • PowerShell, for scripting Microsoft Windows, macOS and Linux
  • Python, general-purpose and extension language
  • Rexx, general-purpose language that runs on many platforms; also used as extension language
  • Ruby, multiple-paradigm, general-purpose language
  • sed, for text-processing; available in most Unix-like operating systems and ported to other operating systems
  • Tcl, for Unix-like environments, popular in the 1990s; can be used in conjunction with Tk to develop GUI applications
  • TrainzScript, custom, extension language for Trainz railroad simulators
  • VBScript, for scripting Microsoft Windows
  • Visual Basic for Applications (VBA), an extension language available in Microsoft Office applications
  • Characteristics

    Script is a subjective characterization that generally includes the following attributes.

    Interpreted

    A script is usually not compiled, at least not its usual meaning. Generally, they are interpreted directly from source code, or from bytecode, or run as native after just-in-time compilation.

    Short & simple

    Un script est généralement court et simple. Comme il n'y a pas de limite de taille ni de complexité, la définition de « script » est subjective. Quelques lignes de code sans embranchement sont probablement considérées comme un script. En revanche, un ensemble de fichiers contenant des interfaces utilisateur ou matérielles sophistiquées, des algorithmes complexes ou de la multiprogrammation n'est généralement pas considéré comme un script.

    Automates

    Un script automatise généralement une tâche qui serait autrement effectuée manuellement par une personne.

    Langue limitée

    Un langage principalement destiné à la programmation de scripts possède généralement des capacités limitées par rapport à un langage généraliste. Un langage de script peut ne pas offrir les fonctionnalités nécessaires au développement d'applications complexes.

    Commence par le haut

    En règle générale, un script commence son exécution à la première ligne de code, tandis qu'une application démarre généralement à un point spécial du code appelé point d'entrée .

    Par exemple, Java ne fonctionne pas comme un script, car une application commence par une fonction nommée `start` ); } public static void main ( String [] args ) { printHelloWorld (); } }

    En revanche, le code Python suivant affiche « Hello World » sans la )

    utilisateur unique

    Les scripts sont souvent créés ou modifiés par la personne qui les exécute, mais ils sont aussi souvent distribués, comme lorsque de grandes parties de jeux sont écrites dans un langage de script, notamment le jeu T-rex de Google Chrome .

    Histoire

    Les premiers ordinateurs centraux (dans les années 1950) n'étaient pas interactifs et utilisaient plutôt le traitement par lots . Le langage de contrôle des tâches (JCL) d'IBM est l'archétype des langages utilisés pour contrôler le traitement par lots.

    Les premiers interpréteurs de commandes interactifs ont été développés dans les années 1960 pour permettre le fonctionnement à distance des premiers systèmes à temps partagé . Ils utilisaient des scripts shell , qui contrôlaient l'exécution de programmes informatiques au sein d'un autre programme, l'interpréteur de commandes. Calvin Mooers, avec son langage TRAC, est généralement considéré comme l'inventeur de la substitution de commandes , c'est-à-dire la possibilité d'intégrer des commandes dans des scripts qui, une fois interprétés, insèrent une chaîne de caractères dans le script. Multics appelle ces commandes des fonctions actives . Louis Pouzin a écrit un des premiers processeurs pour scripts de commandes, appelé RUNCOM, pour CTSS vers 1964. Stuart Madnick, au MIT, a écrit un langage de script pour CP/CMS d'IBM en 1966. Il a initialement nommé ce processeur COMMAND, puis EXEC . Multics incluait une version dérivée de CTSS RUNCOM, également appelée RUNCOM. EXEC a finalement été remplacé par EXEC 2 et Rexx .

    Des langages comme Tcl et Lua ont été spécifiquement conçus comme des langages de script généralistes pouvant être intégrés à n'importe quelle application. D'autres langages, tels que Visual Basic pour Applications (VBA), offraient une intégration poussée avec les outils d'automatisation du système sous-jacent. L'intégration de ces langages de script généralistes, plutôt que le développement d'un nouveau langage pour chaque application, présentait également des avantages évidents : elle dispensait le développeur d'avoir à coder un traducteur de langage et permettait à l'utilisateur d'appliquer des compétences acquises ailleurs.

    Certains logiciels intègrent plusieurs langages de script différents. Les navigateurs web modernes fournissent généralement un langage pour écrire des extensions au navigateur lui-même, et plusieurs langages embarqués standard pour contrôler le navigateur, notamment JavaScript (un dialecte d' ECMAScript ) ou XUL .

    Types

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

    Langages de liaison

    On oppose souvent le scripting à la programmation système , comme dans la dichotomie d'Ousterhout ou « programmation à grande échelle et programmation à petite échelle ». Dans cette perspective, le scripting est un code d'interface , reliant les composants logiciels , et un langage spécialisé à cet effet est un langage d'interface . Les pipelines et les scripts shell sont des exemples archétypaux de langages d'interface, 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 d'interface, assurant l'interfaçage entre une base de données et un serveur web . Cependant, si une part importante de la logique est écrite en script, il est plus juste de le caractériser comme un simple composant logiciel, et non comme un simple « code d'interface ».

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

    Les langages de macro exposés aux composants du système d'exploitation ou des applications peuvent servir de langages d'interface. Parmi ceux-ci figurent Visual Basic pour Applications (VBA) , 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 d'interface, de même que tout langage implémenté par un moteur Windows Script Host (VBScript, JScript et VBA par défaut sous Windows, et des moteurs tiers incluant des implémentations de Rexx, Perl, Tcl, Python, XSLT, Ruby, Pascal moderne, Delphi et C). La plupart des applications peuvent accéder aux composants du système d'exploitation et les utiliser via leurs modèles objets ou leurs propres fonctions.

    D'autres appareils, comme les calculatrices programmables, peuvent également disposer de langages d'interface ; les systèmes d'exploitation des assistants personnels, tels que Windows CE, peuvent proposer des outils macro natifs ou tiers permettant d'interconnecter les applications, en plus des implémentations des langages d'interface courants, notamment Windows NT , DOS , certains shells Unix , Rexx, Pascal moderne, 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 d'interface de trois manières. Par exemple, la Texas Instruments TI-92 peut être programmée par défaut avec un langage de script de commandes. L'intégration du langage de script et d'interface Lua dans la série de calculatrices Les compilateurs croisés C sur PC pour certaines machines TI et HP, utilisés avec des outils qui convertissent entre C et Perl, Rexx, AWK et les scripts shell en Perl, Modern Pascal, VBScript vers et depuis Perl, permettent d'écrire un programme dans un langage d'interface pour une implémentation éventuelle (sous forme de programme compilé) sur la calculatrice.Semware Editor (TSE) ou vi improved (Vim), soit à l'aide d'une implémentation externe, comme XEDIT , soit les deux, comme KEDIT . Parfois, les éditeurs de texte et les macros d'édition sont utilisés en interne par d'autres applications, comme FILELIST et RDRLIST dans un CMS .

    Langages de contrôle des tâches et shells

    contrôle des tâches , qui concerne le lancement et le contrôle du comportement des programmes système (en ce sens, on peut considérer les shells comme des descendants du JCL ( Job Control Language ) d'IBM, conçu précisément à cette fin). Nombre de ces langages possèdent des interpréteurs qui servent également d'interpréteurs de commandes, tels que le shell Unix ou MS-DOS COMMAND.COM. D'autres, comme AppleScript, permettent d'utiliser des commandes proches du langage naturel pour créer des scripts.

    Scripting d'interface graphique

    Avec l'avènement des interfaces graphiques , un type spécialisé de langage de script a vu le jour pour contrôler un ordinateur. Ces langages interagissent avec les mêmes fenêtres graphiques, menus, boutons, etc., qu'un utilisateur humain, en simulant ses actions. Ils servent généralement à automatiser les tâches de l'utilisateur. On les appelle également macros lorsque le contrôle s'effectue par la simulation de frappes au clavier, de clics de souris, ou d'interactions tactiles sur un écran tactile.

    Ces langages pourraient en principe servir à contrôler n'importe quelle application graphique, mais en pratique, leur utilisation est limitée car ils nécessitent l'assistance de l'application et du système d'exploitation . Il existe quelques exceptions à cette règle. Certains langages de script d'interface graphique reposent sur la reconnaissance des objets graphiques à partir des pixels de l'écran . Ces langages ne dépendent ni du système d'exploitation ni de l'application.

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

    Langues spécifiques à l'application

    Les langages spécifiques à une application peuvent être classés en plusieurs catégories : les langages d'application autonomes (exécutables) et les langages internes à une application (comme PostScript , XML et gscript, implémentés respectivement par Adobe , Microsoft et Google ). Certains de ces langages sont des langages de script idiomatiques, adaptés aux besoins de l'utilisateur. De même, de nombreux systèmes de jeux vidéo utilisent un langage de script personnalisé pour exprimer les actions programmées des personnages non-joueurs et de l'environnement de jeu. Ces langages sont conçus pour une application unique ; bien qu'ils puissent superficiellement ressembler à un langage généraliste (par exemple, QuakeC , inspiré du C), ils possèdent des caractéristiques spécifiques qui les distinguent. Emacs Lisp , dialecte complet et performant de Lisp , offre de nombreuses fonctionnalités particulières qui le rendent particulièrement utile pour étendre les fonctions d'édition d'Emacs. Un langage de script spécifique à une application peut être considéré comme un langage de programmation dédié à un domaine spécifique et spécialisé pour une application donnée.

    Langues d'extension/intégrables

    Plusieurs langages ont été conçus pour remplacer les langages de script spécifiques à une application en étant intégrables à ces dernières. Le programmeur (travaillant en C ou dans un autre langage système) inclut des points d'entrée permettant au langage de script de contrôler l'application. Ces langages peuvent être techniquement équivalents à un langage d'extension spécifique, mais lorsqu'une application intègre un langage commun, l'utilisateur bénéficie de la possibilité de 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 généraliste peut utiliser pour contrôler l'application, sans avoir à le modifier pour le domaine spécifique.

    JavaScript a été initialement conçu, et l'est encore principalement, comme un langage de script interne aux navigateurs web . Cependant, sa normalisation sous le nom d' ECMAScript l'a popularisé en tant que langage embarqué généraliste. L' implémentation SpiderMonkey de Mozilla est intégrée à plusieurs environnements, tels que le moteur de widgets Yahoo , et à des applications comme les produits Adobe Flash ( ActionScript ) et Acrobat (pour le script de fichiers PDF ).

    Tcl a été créé comme langage d'extension, mais il est aujourd'hui plus fréquemment utilisé comme langage généraliste, à l'instar de Python , Perl et Ruby . À l'inverse, Rexx a été conçu comme langage de contrôle de tâches, mais il est largement utilisé comme langage d'extension et comme langage généraliste. Perl est un langage généraliste, mais il possédait le dialecte Oraperl (1990), constitué d'un binaire Perl 4 intégrant l'interface d'appel Oracle . Ce dialecte a depuis été remplacé par une bibliothèque (module Perl), DBD::Oracle .

    D'autres applications complexes et orientées tâches peuvent intégrer et exposer un langage de programmation embarqué afin d'offrir à leurs utilisateurs un contrôle accru et des fonctionnalités plus étendues que celles accessibles via une interface utilisateur, aussi sophistiquée soit-elle. Par exemple, les outils de création 3D d'Autodesk Maya intègrent le langage embarqué Maya (MEL) , tandis que Blender utilise Python à cette fin.

    D'autres types d'applications nécessitant des cycles d'ajout de fonctionnalités ou de développement rapides (comme les moteurs de jeux ) utilisent également un langage embarqué. Lors du développement, cela leur permet de prototyper plus rapidement les fonctionnalités et de les modifier plus librement, sans que l'utilisateur ait besoin de connaître en détail le fonctionnement interne de l'application ni de la reconstruire après chaque modification (ce qui peut s'avérer très long). Les langages de script utilisés à cette fin vont des plus courants et des plus connus Lua et Python à des langages moins répandus comme AngelScript et Squirrel .

    Plus d articles de Worldlex Wiki

    Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

    Explorer l index