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. »[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 ? [http://www.lix.polytechnique.fr/~dowek/Vulg/langagelangages.pdf lire en ligne]
pdf
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 :

généraliste/spécialisé,
haut niveau/
bas niveau,
interprété/
compilé,

avec/sans
gestion de mémoire automatisée,

avec/sans
système de gestion d'exceptions,

à
typage fort/
typage faible,

à
typage statique/
typage dynamique,

à
syntaxe fixe/extensible ;

non objet/
orienté objet/purement objet,

impératif/fonctionnel/déclaratif,

fonctionnel pur/impur,

etc.
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 |
-align="center" bgcolor="#CCCCCC" |
Nom' ||'''Impératif''' ||'''Fonctionnel''' |>Objets || Déclaratif || 'Concurrent |
bgcolor="#EFEFEF" |
4D |>X || || || || |
|
|>X || || X || || |
bgcolor="#EFEFEF" |
Ada |>X || || X || || X |
|
Algol |>X || || || || |
bgcolor="#EFEFEF" |
Anubis |>|| X || X || || |
|
APL ||X |>|| APL2 || || |
bgcolor="#EFEFEF" |
Assembleur |>X || || || || |
|
|>X || || || || |
bgcolor="#EFEFEF" |
|>X || X || || || |
|
|> || X || | |
bgcolor="#EFEFEF" |
C |>X || || || || |
|
C++ |>X || || X || || |
bgcolor="#EFEFEF" |
C# |>X || || X || || |
|
|>X || ||COBOL 2002 || || |
bgcolor="#EFEFEF" |
|>X || || || || |
|
|>X || X || X || (screamer) || |
bgcolor="#EFEFEF" |
|>X || || X || || |
|
Eiffel |>X || || X || || |
bgcolor="#EFEFEF" |
Erlang |>|| X || || || X |
|
|>X || || || || |
bgcolor="#EFEFEF" |
Forth |>X || || || || |
|
|>|| X || (O'Haskell) || || |
bgcolor="#EFEFEF" |
|>X || || || || |
|
Java |>X || || X || || |
bgcolor="#EFEFEF" |
Limbo |>X || || X || || |
|
Logo |>X || || || || |
bgcolor="#EFEFEF" |
ML |>X || X || (Objective CAML) || || |
|
|>X || || || || |
bgcolor="#EFEFEF" |
|>X || || X || || |
|
Oz |>X || X || X || X || X |
bgcolor="#EFEFEF" |
Pascal |>X || || (Delphi, Kylix) || || |
|
Perl |>X || X || X || || |
bgcolor="#EFEFEF" |
PHP |>X || || (PHP 4+) || || |
|
|>X || || || || |
bgcolor="#EFEFEF" |
Python |>X || X || X || ||Stackless |
|
|>|| || || X || |
bgcolor="#EFEFEF" |
GAP |>X || || || || |
|
|>X || X || X || || |
bgcolor="#EFEFEF" |
Scala |>X || X || X || || X |
|
|>X || X || (TinyClos) || ||gambit, termite |
bgcolor="#EFEFEF" |
|>X || || X || || |
|
|>X || || X || || |
bgcolor="#EFEFEF" |
Tcl |>X || X || (Incr Tcl, Snit, XOTcl) || || |
|
|>X || || X (, WebDev, WinDev Mobile) || || |
bgcolor="#EFEFEF" |
|>X || || || X || |
Langages déclaratifs
Oz
Mercury
Prolog pour
PROgrammation LOGique
Clips
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 :
Langages de définition de données
ASN.1
DTD SGML
DTD XML
XML Schema
Relax NG
Langages spécialisés pour la communication avec une base de données
4GL
SAS
SQL
Visual FoxPro (Description)
W-Langage (
WinDev,
WinDev Mobile)
Magic eDeveloper
Langages pour pages Web dynamiques

Exécution par le
serveur HTTP (côté serveur) :
PHP.
ASP.
JSP (issu de
Java, basé sur des
Servlets).
Python.
Perl.
Tcl.
Framework Ruby on Rails basé sur le langage
Ruby.
XSP (issu de
XML, soutenu par
Apache).

Tout langage dans le cadre de
Common Gateway Interface (CGI).
W-Langage (
WebDev).

Exécution par le
navigateur web (côté client) :
JavaScript ou
ECMAScript (dont
JScript hérite avec des extensions spécifiques).
VBScript.
applets écrites en
Java.

Tclets écrits en
Tcl.
ActionScript de
Macromedia Flash.
XSLT.
Langages de programmation théorique
Machine de Turing
Lambda-calcul
Récursion Primitive
Système T de
Kurt Gödel
Pi-calcul
Join-Calcul
Logique combinatoire
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?
Programmation de commande numérique
Sequential function chart, langage graphique, dérivé du
grafcet (NB : le grafcet définit les spécifications de façon graphique)
Langage Ladder,
langage graphique
Pour rendre la programmation plus difficile
Brainfuck (ou encore
F
ckF
ck,
Ook ou
spoon)
Intercal
Malbolge
Unlambda
Langages spécialisés
ABEL, langage pour la programmation électronique des
PLD
CDuce, langage fonctionnel d'ordre supérieur pour la manipulation de documents au format XML.
Esterel,
Lustre,
Signal,
Lucid Synchrone : langages de programmation synchrones pour les systèmes réactifs
Forme de Backus-Naur (BNF), formalisation des langages de programmation
Langage K, langage à vocation pédagogique
R, langage pour l'outil de statistiques du même nom
PROMELA, langage de spécification de systèmes asynchrones
SystemC, langage de description matérielle de plus haut niveau que les précédents et permettant une simulation plus rapide
Verilog, autre langage de description matérielle et de simulation, plus populaire aux États-Unis
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
VRML, description de scènes en trois dimensions
xLispStat, langage pour l'outil de statistiques du même nom
Autres langages
Fenix
ABAP
Anubis
ArmScript
awk
Lisaac
Miva Script
SNOBOL
sed
Scripting mIRC

[http://scratch.mit.edu/ Scratch], langage gratuit, développé par le
Massachusetts Institute of Technology (MIT) et orienté vers une utilisation dès l'âge de 8 ans.

[http://www.up-comp.com/french/ressources/ Up ! 5GL pour consolider ou construire des applications basées sur des composants.]
Notes et références
références
Voir aussi
Langage de balisage
Langage informatique
Chronologie des langages de programmation
Portail|programmation informatique
Lien AdQ|he
Lien AdQ|vi
lien BA|en
af:Programmeertaal
als:Programmiersprache
am:?????? ???
an:Lenguache de programazión
ar:??? ?????
ast:Llinguaxe de programación
bg:???? ?? ????????????
bn:??????????? ????
br:Areg
bs:Programski jezik
ca:Llenguatge de programació
cs:Programovací jazyk
da:Programmeringssprog
de:Programmiersprache
el:?????? ???????????????
en:Programming language
eo:Programlingvo
es:Lenguaje de programación
et:Programmeerimiskeel
eu:Programazio-lengoaia
fi:Ohjelmointikieli
gl:Linguaxe de programación
he:??? ?????
hr:Programski jezik
hu:Programozási nyelv
ia:Linguage de programmation
id:Bahasa pemrograman
ilo:Lengguahe ti panangprograma
is:Forritunarmál
it:Linguaggio di programmazione
ja:?????????
ka:????????????? ???
ko:????? ??
lb:Programméiersprooch
lt:Programavimo kalba
lv:Programm??anas valoda
ml:????????????? ???
nl:Programmeertaal
nn:Programmeringsspråk
no:Programmeringsspråk
pl:J?zyk programowania
pt:Linguagem de programação
ro:Limbaj de programare
ru:???? ????????????????
simple:Programming language
sk:Programovací jazyk
sl:Programski jezik
sq:Gjuhë programimi
su:Basa pamrograman
sv:Programspråk
ta:????????
te:????????????? ???
tg:?????? ???????????
th:???????????
tl:Wikang pamprograma
tr:Programlama dilleri
uk:???? ?????????????
vi:Ngôn ng? l?p trình
zh:????
zh-min-nan:Thêng-sek gí-giânlangage_de_programmationLangage de programmation6923