Langage de programmation

Un article de Wikipédia, l'encyclopédie libre.

Un langage de programmation est un code de communication, permettant à un être humain de dialoguer avec une machine en lui soumettant des instructions et en analysant les données matérielles fournies par le système, généralement un ordinateur. Le langage permet à la personne qui rédige un programme, de faire abstraction de certains mécanismes internes, généralement des activations et désactivations de commutateurs électroniques, qui aboutissent au résultat désiré.

L'activité de rédaction du code source d'un programme est nommée programmation. Elle consiste en la mise en œuvre de techniques d'écriture et de résolution d'algorithmes informatiques, lesquelles sont fondées sur les mathématiques. À ce titre, un langage de programmation se distingue du langage mathématique par sa visée opérationnelle (une fonction et par extension, un programme, doit retourner une valeur), de sorte qu'un « langage de programmation est toujours un compromis entre la puissance d'expression et la possibilité d'exécution. »[1]

Sommaire

[modifier] Langages de programmation

Les langages de programmation permettent de définir les ensembles d'instructions effectuées par l'ordinateur lors de l'exécution d'un programme. Il existe des milliers de langages de programmation, la plupart d'entre eux étant réservés à des domaines spécialisés. Ils font l'objet de recherches constantes dans les universités et dans l'industrie.

Les langages de programmation peuvent être classifiés de nombreuses manières :

Nous incluons ci-dessous une classification sommaire des langages de programmation les plus connus. Il faut garder à l'esprit que de nombreux langages appartiennent simultanément à plusieurs catégories — ils sont dits « multi-paradigmes ». Par exemple, C++ permet la programmation impérative, orientée objet et la programmation générique (à base de classes et de fonctions paramétrées nommées templates). Common Lisp est à la fois impératif, fonctionnel, orienté objet — et son caractère « programmable » (un langage de programmation programmable...) lui permet d'intégrer d'autres « paradigmes » de programmation en son sein (par exemple : la programmation logique, la programmation par contraintes).

Ci-dessous, nous listons les langages les plus connus (nous mettons entre parenthèses certains langages dérivés ou les extensions requises).

Classification des langages généralistes
Nom Impératif Fonctionnel Objets Déclaratif Concurrent
4D X
ActionScript X X
Ada X X X
Algol X
Anubis X X
APL X APL2
Assembleur X
BASIC X
Caml X X
CDuce X
C X
C++ X X
C# X X
COBOL X COBOL 2002
ColdFusion X
Common Lisp X X X (screamer)
DarkBasic X X
Eiffel X X
Erlang X X
Fortran X
Forth X
Haskell X (O'Haskell)
ICON X
Java X X
Limbo X X
Logo X
ML X X (Objective CAML)
Natural X
Objective C X X
Oz X X X X X
Pascal X (Delphi, Kylix)
Perl X X X
PHP X (PHP 4+)
PL/I X
Python X X X Stackless
Prolog X
RPG ou GAP X
Ruby X X X
Scala X X X X
Scheme X X (TinyClos) gambit, termite
Simula X X
Smalltalk X X
Tcl X X (Incr Tcl, Snit, XOTcl)
W-Langage X X (WinDev, WebDev, WinDev Mobile)
XSLT X X

[modifier] Langages déclaratifs

Ci-dessous, nous listons les langages spécialisés, c'est-à-dire dont l'utilisation est réservée à des domaines bien spécifiques ; les plus connus sont :

[modifier] Langages de définition de données

[modifier] Langages spécialisés pour la communication avec une base de données

[modifier] Langages pour pages Web dynamiques

[modifier] Langages de programmation théorique

[modifier] Langages de programmation de Commande Numérique (C.N.)

Une machine-outil automatisée, ou Commande Numérique (C.N.), a besoin d'un langage de programmation pour réaliser les opérations de tournage, ou de fraisage

[modifier] Langages de programmation des automates programmables industriels (API)

[modifier] Pour rendre la programmation plus difficile

[modifier] Langages spécialisés

  • CDuce : langage fonctionnel d'ordre supérieur pour la manipulation de documents au format XML.
  • ABEL : langage pour la programmation électronique des PLD
  • Esterel, Lustre, Signal, Lucid Synchrone : langages de programmation synchrones pour les systèmes réactifs
  • R : langage pour l'outil de statistiques du même nom
  • xLispStat : langage pour l'outil de statistiques du même nom
  • VHDL : langage de description matérielle, permettant de synthétiser de l'électronique numérique (descriptions de portes logiques) et d'en simuler le fonctionnement
  • Verilog, autre langage de description matérielle et de simulation, plus populaire aux États-Unis
  • SystemC, langage de description matérielle de plus haut niveau que les précédents et permettant une simulation plus rapide
  • VRML, description de scènes en trois dimensions
  • Forme de Backus-Naur (BNF), formalisation des langages de programmation

[modifier] Autres langages

[modifier] Notes et références

  1. Gilles Dowek, Le langage mathématique et les langages de programmation, Colloque Voir, entendre, raisonner, calculer, Cité des sciences et de l'industrie, La Villette, Paris, 1997 — lire en ligne [pdf]

[modifier] Voir aussi