Langage de script 42189 29985397 2008-05-25T17:05:21Z Romanc19s 26084 [[Bourne-Again shell]]/* Liste des langages de script */ Un '''langage de script''' est un [[langages de programmation|langage de programmation]] qui permet de manipuler les fonctionnalités d'un système informatique configuré pour fournir à l'[[langage interprété|interpréteur]] de ce langage un environnement et une [[interface]] qui déterminent les possibilités de celui-ci. Le langage de script peut alors s'affranchir des contraintes de [[bas niveau]] — prises en charge par l'intermédiaire de l'interface — et bénéficier d'une [[syntaxe]] de [[langage de haut niveau|haut niveau]]. Le langage de script est généralement exécuté à partir de fichiers contenant le code source du programme qui sera interprété. Historiquement ils ont été créés pour raccourcir le processus traditionnel de développement édition-[[Compilateur|compilation]]-[[édition des liens]]-exécution propre aux [[langage compilé|langages compilés]]. Les premiers langages étaient souvent appelés ''langage de commande'' ou ''langage d'enchaînement des travaux'' ([[JCL]] : Job Control Language) car ils permettaient simplement d'automatiser une succession de commandes simples, à la manière d'un « script » de théâtre. ==Propriétés== Dans le sens le plus traditionnel, qui est celui des ''shell scripts'', un script sert principalement à lancer et coordonner l'exécution de programmes. * Dans sa version la plus simple, un script ne spécifie qu'une suite de programmes à appeler dans un ordre donné (par exemple éditeur de texte, compilateur, éditeur de liens et exécution du code objet). * On y ajoute rapidement une possibilité d'exécution conditionnelle simple (||, &&) en fonction du résultat de l'étape immédiatement précédente (il ne sert à rien d'exécuter si la compilation est mauvaise) * La possibilité d'y employer des variables, des paramètres, des structures de contrôle (répétition, exécution conditionnelle), etc. fait des langages de scripts de véritables langages de programmation. Dans un sens différent, on appelle aussi ''langage de script'' un langage où les éléments visuels sont considérés comme des personnages placés sur une "scène", personnages dont le comportement est défini par un ''script''. L'un des premiers langages de ce type dans le monde de la micro-informatique a été le langage [[HyperTalk]] ([[Programmation orientée objet|langage orienté objet]] dérivé de [[Smalltalk]]) très proche du langage naturel, que Dan Winkler crée en [[1987]] pour commander le programme [[HyperCard]] sur MacIntosh. Le langage [[Lingo]] de [[Macromedia Director]] est un descendant direct d'HyperTalk. Enfin, l'informatique n'étant pas à une terminologie approximative près, "langage de script" désigne parfois, dans un sens très vague, n'importe quel langage de programmation interprété (ce qui est un abus de langage : en toute rigueur le caractère interprété ou compilé se rapporte à une '''implémentation''' particulière, pas à un langage), par rapport aux langages compilés comme [[C (langage)|C]], [[C++]], [[Java (langage)|Java]], etc. On y trouve alors [[BASIC]], [[PHP: Hypertext Preprocessor|PHP]], [[Lisp]], [[JavaScript]], etc. == Liste des langages de script == Les langages de script les plus connus sont : * [[Bourne shell|sh]]; [[Bourne-Again shell|bash]] ; [[korn shell|ksh]] ; [[zsh]] ; [[csh]] ; [[tcsh]] * [[JavaScript]] ; * [[Lisp]] ; [[Scheme]] * [[GNU Octave]] * [[PHP: Hypertext Preprocessor|PHP]] ; * [[Perl (langage)|Perl]] ; * [[Python (langage)|Python]] (peut être compilé) ; * [[Rebol]] ; * [[Rexx]] ; * [[Ruby]] ; * [[Lua]] ; * [[Tcl/Tk]]; * [[KiXtart]] ; * etc. Mais il en existe beaucoup d'autres... == Sha-bang == ''Note : sous [[Unix]], la première ligne indique le nom de l'interpréteur. Cette ligne commence par les caractères # ! qu'on appelle [[sha-bang]], une contraction de Sharp (le nom du symbole dièse en anglais) et bang (le nom du point d'exclamation en anglais). Exemple: <pre> #!/bin/sh iv () { echo $2$1 } iv jour bon </pre> donnera : <pre> bonjour </pre> {{Article détaillé|Sha-bang}} == Quelques avis == === [[Larry Wall]] === * « when I was a RSTS programmer on a PDP-11, I certainly treated BASIC as a scripting language, at least in terms of rapid prototyping and process control. I'm sure it warped my brain forever » :(Quand je programmais un [[PDP-11]], j'ai assurément traité [[BASIC]] comme un langage de script, en tout cas pour le prototypage et la commande de processus. Je suis certain que cela m'a déformé durablement). *« basically, scripting is not a technical term. When we call something a scripting language, we're primarily making a linguistic and cultural judgment, not a technical judgment » :(''Langage de script ne constitue pas un terme technique; l'utiliser fait état d'un jugement linguistique et culturel, pas technique'') -- [http://www.perl.com/pub/a/2007/12/06/soto-11.html Programming is Hard, Let's Go Scripting...] ==Voir aussi== ===Articles connexes=== * [[shell (informatique)|shell]] * [[Langage]] ===Liens externes=== * John K. Ousterhout, ''Scripting: Higher Level Programming for the 21st Century'', IEEE Computer magazine, March 1998 [http://www.tcl.tk/doc/scripting.html] [[Catégorie:Langage de script|*]] {{Portail|programmation informatique}} [[ca:Llenguatge script]] [[cs:Skript (program)]] [[da:Scriptsprog]] [[de:Skriptsprache]] [[en:Scripting language]] [[es:Guión (informática)]] [[fi:Komentosarjakieli]] [[id:Bahasa skrip]] [[it:Scripting]] [[ja:スクリプト言語]] [[ko:스크립트 언어]] [[lv:Skriptu valoda]] [[nl:Scripttaal]] [[no:Skriptspråk]] [[pl:Język skryptowy]] [[ru:Скриптовый язык]] [[sk:Skriptovací jazyk]] [[sv:Skriptspråk]] [[tr:Betik dili]] [[zh:脚本语言]]