Mes amis de programmation me disent toujours que HTML est un langage de balisage et C ++ est un langage de programmation. Quand je leur demande quelle est la différence, ils ne me donnent jamais de réponse raisonnable.
Qu'est-ce qui pourrait faire que l'on appelle C ++ un langage de programmation, et pas HTML?
programming-languages
terminology
markup
Lucas - Better Coding Academy
la source
la source
Réponses:
Un langage de programmation est une notation conçue pour transmettre des instructions à une machine. Selon cette définition, C ++ et HTML sont tous deux des langages de programmation, tout comme la notation que Joseph Marie Jacquard a utilisée en 1801 pour programmer ses métiers à tisser .
Cependant, avec la prolifération des langages utilisés pour structurer et / ou décrire les données, la définition d'un langage de programmation s'est déplacée pour n'inclure que les langages capables d'exprimer des algorithmes. C'est la définition la plus courante aujourd'hui et elle exclut les langages comme HTML ou XML.
Au cœur de la définition actuelle se trouve le concept d' exhaustivité de Turing . La plupart des langages de programmation sont Turing complet, et l'intégralité de Turing est souvent cité comme le seul trait critique qui sépare un langage de programmation de tout autre langage informatique. C'est assez bon en règle générale, mais pas tout à fait exact:
Selon le contexte, vous pouvez choisir la définition que vous souhaitez.
Modifier:
Qu'on le sache plus loin, une implémentation d'un langage ne confère pas de caractéristiques au langage lui-même, par exemple: les spécifications d'un langage peuvent définir un langage complet de turing, quelqu'un pourrait l'implémenter au hasard en laissant de côté l'intégralité de turing. Cette implémentation n'étant pas complète ne signifie cependant pas que le langage lui-même n'est pas complet (cela signifie plutôt que l'implémentation n'est pas conforme). Les détails d'une langue et les détails d'une implémentation particulière d'une langue doivent être reconnus comme des choses distinctes, c'est pourquoi il est inexact d'appeler une langue interprétée ou compilée, etc.
la source
- "Je le sais quand je le vois" Article Wikipedia
Comme l'obscénité, je pense que nous connaissons tous un langage de programmation quand nous en voyons un. De toute évidence, l'OP le fait, puisque vous avez déjà jugé que C ++ était un langage de programmation et que HTML n'en était pas un.
Alors, quel est exactement l'objectif de poursuivre une définition formelle? Yannis a déjà donné un grand aperçu des raisons pour lesquelles la définition la plus populaire, l'exhaustivité de Turing, est erronée: elle conduit à une catégorisation qui défie le test «Je le sais quand je le vois».
Je vous suggère que toute définition que vous pouvez trouver conduira à certains langages qui, selon nous, ne sont pas des langages de "programmation" seront classés comme tels; ou à certaines langues que nous ressentons tous sommes « programmation » langues seront classés comme ne l' être.
Pourquoi ne pas simplement aller avec votre instinct? J'utilise une heuristique simple: un langage de programmation est un langage dont le but principal, à mon avis et selon mes observations, est d'écrire des programmes. Ne pas baliser le contenu. Ne pas transformer XML. Pour écrire des programmes à usage général. Je préfère simplement le savoir quand je le vois plutôt que d'essayer de définir une définition formelle, et je ne vois aucune valeur réelle qui puisse résulter de la tentative d'une telle définition.
la source
Les langages de balisage traitent principalement de la façon dont les informations sont affichées et ils manquent généralement dans l'infrastructure de programmation des variables, des mathématiques, de la comparaison, de la prise de décision (si ... alors), des boucles (pendant, pendant), etc.
Le HTML en lui-même est statique; c'est-à-dire, un peu comme un traitement de texte, il est censé présenter les informations telles quelles. Ce n'est qu'avec l'ajout d'une sorte de langages de programmation (généralement des langages de script comme JavaScript, PHP, etc.) que les pages Web HTML peuvent avoir un contenu "changeant". Les langages de script fournissent les possibilités de "programmation" avec des variables, des mathématiques, des comparaisons, la prise de décision, des boucles, etc.
la source
HTML est un langage déclaratif. Il ne fait pas grand-chose à lui seul, il décrit simplement un document et son contenu (en utilisant des balises qui ont une signification sémantique).
C ++ d'autre part fait quelque chose. Il définit des fonctions et des classes, mais il décrit également comment ces fonctions doivent fonctionner ensemble, comment leurs entrées et sorties sont liées de manière significative et comment l'application doit s'exécuter dans son ensemble.
la source