Existe-t-il une définition précise du mot script ?
Quelle différence entre un langage de programmation et un langage de script ?
Merci.
Existe-t-il une définition précise du mot script ?
Quelle différence entre un langage de programmation et un langage de script ?
Merci.
En général, on utilise le terme de script pour un programme écrit dans un langage interprété.
A l'origine, c'était pour les programmes écrits pour les interpréteurs de commande (scripts shell unix, par exemple), puis on l'a étendu pour d'autres interpréteurs (javascript, VBscript, ...).
Ceci dit, on trouve des gens qui utilisent le terme script pour tout type de programme![]()
J'ai toujours trouvé ça un peu stupide de dire qu'un langage de programmation, ça ne pouvait pas être interprété. Qu'est-ce qui empêcherait de concevoir un interpréteur C ? Un programme qui s'exécuterait directement à partir des codes sources ? Ca n'a à mon avis pas beaucoup d'influence sur la nature (le pouvoir d'expression, la turing-completion...) du langage en lui-même.
Je crois que ca existe, mais je ne me souviens plus du nom.Envoyé par Eusebius
Je rappel que tous les langages de programmation sont turing-complet.Envoyé par Eusebius
Par contre le fait qu'un langage soit interprété (d'ailleur il n'en reste plus bcp la plupart sont compilé à la volé vers du byte-code pour machine-virtuelle) permet des petites fantaisies qu'il est délicat de compiler correctement. Donc cela influe sur l'expressivitée du langage.
Oué... D'ailleurs plusieurs de ces fantaisies sont des sources de failles de sécurité... Mon point de vue profond en fait, c'est qu'il faudrait développer avec les langages interprétés, avec exactement la même rigueur que pour les langages compilés.Envoyé par outs
Comme Ch par exemple ? Ou CInt ?Envoyé par Eusebius
Le terme script n'est pas seulement lié à l'interprétation plutôt qu'à la compilation du code mais plutôt à un but différent du langage généraliste : pour un langage de script l'expressivité et la facilité de mise en oeuvre de tâches complexe prime sur l'efficacité de l'exécution, de ce fait les langages de script modernes sont souvent digne de l'appellation de langage de haut niveau, bien plus que des langages comme C, C++, Java... (ceci n'est pas un troll, tout dépend de ce qu'on appelle langage de haut niveau, si l'on entend par là "langage dans lequel on peut accomplir une tâche hautement complexe sans s'embarasser de détails de mise en oeuvre" j'espère que la plupart des programmeurs présents s'accorderont sur le fait que Python, Perl, Ruby ou autres cousins sont nettement plus proche de cette définition que Java ou C++ (personne ne contestera pour C j'espère...)).
A l'origine les langages de script avaient tendance à être très spécialisés dans leur domaine et à ne permettre qu'avec difficulté les escursions au-dehors, de plus ils avaient des performances déplorables car ils étaient souvent purement interprété (ligne par ligne...), mais aujourd'hui les frontières sont beaucoup plus flous car les langages de script phares (Python, Ruby, Perl) sont tout aussi généraliste que leurs grand frères langages de programmation, et la ligne entre l'interprété et le compilé est beaucoup plus difficile à tracer car tous ces langages passent par une phase de compilation vers un bytecode et se dotent souvent de compilateurs JIT ! De plus la question des performances, déjà bien réduites par les innovations précitées, revêt une importance bien moindre à la lumière de la puissance des machines actuelles.
En résumé la distinction Script/Programme n'a plus vraiment lieu d'être aujourd'hui (sauf dans des domaines bien précis où la performance, la régularité ou le contrôle de la mémoire employée est vital) et j'emploie pour ma part indifféremment les deux termes pour parler des fichiers que j'écris en Perl.
--
Jedaï









Pas a ma connaissance.Envoyé par petitnuage
Pour moi, un langage de script c'est un langage qui delegue le boulot a d'autresQuelle différence entre un langage de programmation et un langage de script?
programmes (principalement les langages de commandes -- shell) ou un petit
langage specialise (genre awk, sed). Je ne nommerais donc pas TCL ou Perl des
langages de script s'il n'y avait l'histoire -- perl a ete concu pour remplacer
justement shell et petits langages specialise, tcl a ete concu pour etre etendu
et servir de langage de commande pour des applications plus specialisees
(l'extension la plus courante etant d'ailleurs tk, servant a ajouter une interface
graphique a quelquechose qui n'en a pas).
J'ai vu ces dernieres annees une tendance a utiliser script pour tout langage
interprete et meme pour tout programme (encore que ca, je n'ai vu que sur
developpez).
A noter que dans le second sens (langage specialise/langage d'extension) on utilise
aussi macro (qui a un sens propre ou le comportement est defini par pure
substitution).
Pour ma part, les langages de script sont des langages faisant partie intégrante d'un logiciel (application ou système d'exploitation), et permettant de le piloter par programmation pour automatiser des tâches dévolues à ce logiciel. Entrent dans cette catégorie des langages comme VBScript, Javascript, les versions embarquées de Lisp (Emacs) ou Python, ... Selon cette définition, les langages de script ne disposent que d'une librairie de fonctions restreinte, leur première tâche consistant à servir de "glu" pour des composants logiciels auxquels ils accèdent généralement par l'intermédiaire d'une API.
Toujours selon cette définition, des langages comme Perl, Python, Ruby ou même PHP ne peuvent plus vraiment être qualifiés de langages de script...
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
Partager