Jusqu'à présent, je ne connais pas les différences essentielles entre ces trois. Quand quelqu'un me pose des questions à ce sujet, je leur dis simplement que C # est un langage de programmation, HTML et XML sont des langages de balisage, et que JavaScript et VBScript sont des langages de script. Mais quelles sont les différences clés qui les distinguent les uns des autres?
38
Réponses:
Permettez-moi d'essayer de trouver une ligne de démarcation entre ces trois types de langage. Bien entendu, il y aura de nombreuses exceptions et contre-exemples, car ce n’est que mon opinion.
Un langage de balisage est utilisé pour contrôler la présentation des données, comme "représente ces noms d'utilisateurs sous forme de liste à puces ou de tableau".
Un langage de script est utilisé pour assurer la médiation entre les programmes afin de générer des données. Ceci est particulièrement vrai pour les langages de script shell comme bash, mais si vous réfléchissez à cela, Python ou Perl sont également venus de la nécessité d'accomplir des tâches sous UNIX sans écrire de programme en C. Le programme que vous contrôlez la plupart du temps dans ces langages est l'interprète de la langue elle - même , qui accomplit des tâches générales pour vous. Les autres programmes typiques avec lesquels vous interagissez sont les serveurs de base de données ou les serveurs Web.
Pour revenir à la métaphore de la liste d'utilisateurs, dans un langage de script, vous demandez à la base de données "donnez-moi tous les noms d'utilisateur", puis au serveur Web "envoyez cette liste d'utilisateurs à ce demandeur".
Un langage de programmation est utilisé pour transformer les données . Pour ce faire, il crée des instructions de la CPU qui réécrivent les données d'entrée dans la sortie. J'espère que la sortie souhaitée . Des exemples de transformation de données consistent à calculer une somme parmi un certain nombre d’addends, ou à résoudre un système d’équations différentielles à partir d’un ensemble de conditions, ou à écrire et lire à partir d’une structure arborescente de manière cohérente, à partir d’une séquence de requêtes simultanées éventuelles. .
Pour revenir à la métaphore de la liste des utilisateurs, vous écrivez dans un langage de programmation comment parcourir une table d'enregistrements, extraire de chaque enregistrement le champ "nom" et les renvoyer au demandeur.
Notez que les langages de script sont un sous-ensemble des langages de programmation, c’est-à-dire qu’un langage peut être à la fois "script" et "programmation": Python est régulièrement utilisé pour "faire la médiation entre les programmes", ainsi que pour "transformer les données". Il existe d’autres langages, comme Java, qui sont rarement utilisés pour "faire la médiation entre programmes", non pas parce que cela est impossible, mais parce qu’ils ne sont pas conçus pour rendre cela facile. La principale caractéristique d'un langage de script est qu'il peut orchestrer d'autres programmes, tout comme un script donne à un acteur le moyen de commencer sa partie.
la source
Un langage de balisage est un langage utilisé pour représenter des données structurées. Par exemple, HTML permet de spécifier qu'une partie du document est un titre ou qu'une autre partie est une liste, par comparaison avec un document à texte plat.
Les langages de balisage ne sont pas considérés comme des langages de programmation¹.
La différence avec les langages de programmation n'est pas toujours évidente. Par exemple, XSLT est un langage complet de Turing², mais est basé sur XML, un langage de balisage.
Wikipedia lui-même fait des efforts importants pour éviter de qualifier XSLT de langage de programmation ou de langage de balisage. Il dit seulement que c'est un langage déclaratif et qu'il utilise «des techniques d'optimisation trouvées dans les langages de programmation fonctionnels et les langages de requête de bases de données».
Un langage de script est un langage de programmation interprété plutôt que compilé, ce qui signifie que les langages de script représentent un sous-ensemble de tous les langages de programmation.
Il n'est pas toujours évident de savoir si un langage de programmation est un langage de script, tout comme il n'est pas toujours évident de savoir si un langage est compilé ou interprété. Par exemple, PHP peut être compilé en un bytecode intermédiaire3 puis traduit en code machine par le compilateur JIT, tout en restant considéré comme un langage de script.
Voir aussi: Splitting Meta-Hairs de Steven Lott.
¹ “XML n'est pas un langage de programmation”. Voir XML en 10 points .
² “XSLT est un langage complet de Turing” Voir XSLT sur Wikipedia
³ “HHVM compile Hack et PHP en un bytecode intermédiaire. Ce bytecode est ensuite traduit dynamiquement au code machine x64 au moment de l'exécution par un compilateur juste-à-temps (JIT). »Voir HHVM .
Languages Langages de script dans Liste des langages de programmation par type sur Wikipedia.
la source
TypeError
! Chaque langue peut être implémentée par un interprète, chaque langue peut être implémentée par un compilateur.Pour produire une taxonomie quelconque, vous devez d’abord vous poser quelques questions:
Généralement, lorsque vous entendez une question comme celle que vous avez posée, la réponse attendue repose sur plusieurs hypothèses. Par exemple, il est naturel de supposer que puisque toutes ces langues sont des langues, elles doivent former une hiérarchie sous un concept plus général de langue, ou qu'elles partitionnent l'espace de toutes les langues, ou qu'elles sont des sous-ensembles les unes des autres.
Langages de programmation
Malheureusement, rien de ce qui précède ne semble être vrai. Peut-être que seuls les langages de programmation ont une définition la plus commune. Les langages de programmation sont des langages qui codent des programmes. Le codage signifie qu'un mot dans la langue peut être interprété comme un programme (une séquence d'actions). Les langages de programmation informatique sont un sous-ensemble de ceux-ci. Exemples de langages de programmation non informatiques: une liste d'épicerie, interprétée comme des instructions pour un acheteur dans un supermarché, un ADN interprété par transcription de peptides, un enregistrement musical analogique servant de programme pour un magnétophone.
Ce sont donc les langages de programmation informatique qui programment les ordinateurs.
Langages de script
Ne sont pas bien définis. Le sens de ce terme est ouvert à interprétation. Historiquement, il semblerait que les langages de programmation ne disposant pas d'un compilateur pour produire du code machine s'appellent ainsi. Selon les normes actuelles, cela inclurait tous les langages de programmation populaires sans assembleurs dans cette catégorie. Même les langages de bas niveau, tels que C, nécessitent un environnement d'exécution avec des procédures préexistantes. Ainsi, les fichiers binaires obtenus en compilant un programme C ne sont pas entièrement du code machine, mais appellent également le moteur d'exécution de temps en temps.
Langages de balisage
Ne sont pas bien définis. Chaque fois que le terme est utilisé, l’intention semble être de décrire un langage de programmation avec un lexique très limité, principalement utilisé pour générer une image visuelle ou audio. Il peut être difficile de voir XML comme une programmation programmée, mais si vous regardez le balisage Man ou TexInfo, vous verrez que les caractères "spéciaux" sont en réalité des instructions de l'interpréteur.
Il est également possible de donner une interprétation "de programmation" pour le langage XML, ce qui pourrait ressembler à ceci:
En bout de ligne: cette division à partir d’aujourd’hui ne semble pas très significative, elle ne peut que vous donner une idée du type de langage auquel vous êtes confronté, mais elle ne vous fournira pas de définition rigoureuse.
la source
Les trois concepts se chevauchant quelque peu, vous pouvez donc avoir des arguments sans fin, que XSLT soit un langage de programmation ou que Python soit un langage de script ou non.
Un langage de balisage est un langage qui représente des données structurées dans un format textuel . HTML est le plus connu, mais il existe de nombreux formats à des fins diverses, comme SVG pour les graphiques, WSDL pour décrire les interfaces de service Web, resx pour les fichiers de recherche. net et ainsi de suite. En règle générale, un langage de balisage ne décrit pas un processus ou un algorithme (comme le fait un langage de programmation), mais des données pures. Mais c’est aussi une idée fondamentale de CS: il existepas de différence fondamentale entre le code et les données. Certains langages de balisage tels que XSLT ont des boucles et des conditions comme un "vrai" langage de programmation, et certains langages de programmation tels que Prolog sont des données presque pures sans processus spécifié dans le code. Et Lisp rend la ligne tellement floue qu'elle traite son propre code comme un format de données structuré.
En ce qui concerne la distinction entre langage de programmation et langage de script , il s’agit d’une distinction historique presque obsolète aujourd’hui. Autrefois, nous avions compilé des programmes autonomes écrits en C, puis des langages de script tels que les scripts shell ou Word Basic, interprétés et conçus pour manipuler d'autres programmes et outils. Aujourd'hui, la ligne est assez floue avec beaucoup de compromis, car nous avons différents niveaux de compilation et d'interprétation (compilation de code intermédiaire, compilation JIT, etc.) et diverses API indépendantes du langage. Donc, la distinction n'est pas utile.
la source
Un langage de balisage est utilisé pour décrire des données plutôt que de la logique. Une utilisation typique d’eux est de décrire la mise en forme de documents, HTML est conçu pour cela par exemple. Mais ils sont aussi parfois utilisés comme formats de données généraux. XML est un langage de balisage souvent utilisé pour décrire simplement des données.
La différence entre la programmation et les langages de script est très floue, les deux ont tendance à être complète en ce sens que vous pouvez résoudre tous les problèmes informatiques qui peuvent en résulter. Il existe des «astuces» générales que vous pouvez rechercher pour savoir si un langage est un langage de programmation ou non.
Mais au final, si un langage est un langage de script ou un langage de programmation, il s’agit davantage d’une convention que de critères stricts. Même les astuces ci-dessus ne sont que des tendances, vous trouverez des langages de programmation qui répondent à tous les critères d'un langage de script mais qui sont toujours considérés comme des langages de programmation.
la source
TypeError
! Chaque langue peut être implémentée par un interprète, chaque langue peut être implémentée par un compilateur. Il est même possible de générer automatiquement un compilateur à partir d'un interprète et inversement.