salut tous le monde .
quel sont les différence entre un langage de programmation est un langage de script ?
salut tous le monde .
quel sont les différence entre un langage de programmation est un langage de script ?
Bonne question, ça dépend pas mal de qui te répond....
--
Jedaï
J'aurais tendance à répondre qu'un langage de script est un langage de programmation interprêté, et donc avec lequel le programme (appelé script) est immédiatement exécutable sans avoir à compiler etc...
Au départ, les langages de script étaient limités, mais au fil du temps, et de langage comme perl, python, PHP, on en est arrivé à ne plus voir trop la différence entre langage de script et langage de programmation interprété.
Pour moi, un langage de script est interprété (ou compilé à la volée de façon totalement transparente pour l'utilisateur et sans "coût" de temps visible) par un interpréteur et/ou une machine virtuelle, et il est intégrable au sein d'un logiciel quelconque afin d'obtenir une "symbiose" logicielle : le langage de script permet d'étendre et personnaliser le programme hôte, qui en retour "enrichit" le langage de script avec des commandes natives qui lui sont propres. A noter qu'un interpréteur de commande (shell Unix, interpréteur de commandes DOS/Windows, etc) est également considéré comme un programme hôte.
Le code est ré-interprété à chaque exécution, sauf dans des cas particuliers de mise en cache d'une version "sûre" (intégralement vérifiée syntaxiquement, voire sémantiquement), et occasionne donc un "surcoût" de temps d'exécution pour une opération qui est, finalement, toujours la même et avec le même résultat. L'avantage est que le programme est le code source lui-même, et que toute modification est immédiatement testable sans aucun autre logiciel que l'hôte et son interpréteur intégré.
Un langage de programmation, c'est un langage informatique permettant d'implémenter un algorithme (avec plus ou moins de facilités : implémenter des fonctions mathématiques "libres" en Scheme ou Lisp est trivial, en Assembleur y'a de quoi se tirer une balle), et possédant une grammaire précise et quasi-immuable.
En ce sens, un langage de script EST un langage de programmation, mais tous les langages de programmation ne sont pas des langages de scripts.
Si par "langage de programmation" tu sous-entendais "langage compilé", la différence est plus simple : un langage est dit compilé lorsqu'il doit passer par un compilateur, qui effectue les vérifications de syntaxe et de sémantique une seule et unique fois, afin de produire un "code exécutable" réduit à l'essentiel et n'ayant plus aucun lien visible avec le code source (il est d'ailleurs souvent impossible d'effectuer l'opération inverse de la compilation). Durant cette phase, le compilateur effectue un travail similaire à celui d'un interpréteur, la différence majeure étant que le code produit est stocké au lieu d'être exécuté directement.
Ce code peut être natif (exécuté directement sur le processeur), ou être du bytecode (exécuté par un processeur virtuel, dans une machine virtuelle).
Toutefois, c'est un résumé extrêmement succinct et réducteur que je te donne, le sujet est quand même très vaste... Il faudra préciser ta question si jamais tu n'as pas eu la réponse que tu souhaitais.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Un langage de programmation est destiné à implémenter des algorithmes. La manière dont c'est exécuté (interprété, précompilé, compilé bytecode, compilé natif) est totalement accessoire, et n'offre (presque) aucun intérêt tant que l'algo est correctement implémenté, et que ça répond donc au besoin.
Un langage de script est interprété, le cas des compilations à la volée étant anecdotique... Et surtout, ça ne change pas le fait que ça reste "interprété", c'est juste une optimisation pour améliorer les temps d'exécution.
Le plus important dans un langage de script, à mon sens, c'est qu'il est en "symbiose" avec un programme hôte...
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Je l'ai déjà fait, je recite mon premier message :le langage de script permet d'étendre et personnaliser le programme hôte, qui en retour "enrichit" le langage de script avec des commandes natives qui lui sont propres.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Un langage n'est pas interprété ou compilé, c'est un programme qui l'est.
L'interpréteur (ou le compilateur), n'est qu'une implémentation du langage (une parmi plusieurs possibles), et parler de langage interprété me semble un abus de langage (si je puis dire).
Je préfère donc nettement rapprocher les langages de scripts des langages de programmation dynamique, comme le fait Wikipedia (c'est à dire un langage qui autorise des actions au moment de l'exécution là où les autres ne les autorise qu'au moment de la compilation : évaluation d'expression dynamiques, fermetures, ...).
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
C'en est bien un... Mais devenu tellement habituel depuis tellement d'années qu'il est peu probable qu'une confusion soit possible... Car si ce n'est pas pour créer des programmes, un langage ne sert à rien ! En lui-même, que ce soit ton interpréteur, compilateur ou même la grammaire du langage en question, ça ne sert à RIEN tant que tu ne fais pas un programme avec.
C'est le même genre d'abus de langage qui fait dire que "les armes sont dangereuses"... Alors qu'en elle-même, une arme est totalement inoffensive, c'est un bête objet : c'est l'humain qui la manipule qui est dangereux ou pas...
Sauf que cela est réducteur : un langage interprété (ou langage de programmation dynamique si tu préfères) n'a pas forcément la notion de script, qui elle-même sous-entends que l'on pilote quelque chose à l'aide d'un programme (le script) "simple", dynamique et surtout au niveau de l'utilisateur final, sans qu'il aie les sources du programme piloté ni besoin des développeurs du programme pour faire tout ce qu'il a envie.Je préfère donc nettement rapprocher les langages de scripts des langages de programmation dynamique, comme le fait Wikipedia (c'est à dire un langage qui autorise des actions au moment de l'exécution là où les autres ne les autorise qu'au moment de la compilation : évaluation d'expression dynamiques, fermetures, ...).
C'est ce que je voulais souligner quand je parlais de "symbiose" entre un langage de script et son hôte... Si tu prends deux programmes (= les hôtes) scriptés par un langage de script quelconque (ex : Python), tu auras dans les DEUX programmes un tronc commun (la base du langage de script), PLUS des extensions propres à chaque hôte, et absentes de l'autre programme (API spécifique)... Chaque hôte enrichit et étend le langage de script, et le langage de script permet en retour de personnaliser le fonctionnement de l'hôte.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Je voulais dire que ce n'est pas une caractéristique intrinsèque d'un langage que d'être "interprété" ou "compilé" (seule sa syntaxe et sa sémantique le défini, son implémentation est généralement libre, sauf peut-être Java qui impose une machine virtuelle dans les spécifications du langages).
Perl et Python peuvent être interprétés et compilés, Java est compilé et interprété, ...
Sinon, pour la symbiose, pourrais-tu donner un exemple concret de ce qu'apporte un langage de script en terme de symbiose et que n'apporte pas un langage de programmation (comme C) ?
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
juste pour ne pas faire couler beaucoup d'encre ??? de bande passante ?? inutile, je rappelle que ce sujet et déjà évoqué dans ce même forum :
script vs programmation
et
jobs vs processus
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Donc, en gros et pour faire simple:
Programmation=codage binaire
Script= Langage interprété par un programme
8 ans plus tard...
Je n'ai jamais entendu ce terme de "langage de programmation", ou plutôt jamais entendu une telle différence. Un langage de script c'est un langage de programmation. Ecrire un script c'est programmer.
Un langage de script aura besoin d'un interpréteur pour être exécuté et ne sera pas compilé dans un exécutable natif à la plateforme.
Tes fichiers .py, tu dois avoir Python installé. Quand tu lances un .py, le système sait qu'il faut l'ouvrir avec Python, tout comme il ouvre notepad pour un fichier .txt.
Tes fichiers .php sont exécutés par Apache ou ton serveur PHP.
php et python sont des langages de script.
Quand tu compiles un projet C++, tu as un .exe que le système lance tel quel, il ne lance pas de programme pour le lire et l'exécuter.
C++ n'est pas un langage de script.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Et quand on ajoute des choses comme cling https://root.cern.ch/cling (une invite de commandes C++) ou Jython http://www.jython.org/ (un compilateur Python pour la JVM), ça devient de suite plus fun .
Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.
Créer des applications graphiques en Python avec PyQt5
Créer des applications avec Qt 5.
Pas de question d'ordre technique par MP !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager