Langages à objets |
C++ - C# - D Delphi - Eiffel - Groovy Java - Lisaac - Python - Ruby Simula - Smalltalk Visual Basic - WLangage |
Langages impératifs |
APL - ASP - Assembleur BASIC - C - Cobol - Natural Forth - Fortran - Limbo Logo - Pascal - Perl - PHP |
Langages fonctionnels |
Haskell - ML/OCaml Lisp/Common Lisp Scheme - XSLT |
Langages déclaratifs |
Clips - Prolog |
Langages concurrents |
Ada 95 - Erlang |
Voir aussi |
Conception - Codage Tests - Optimisations |
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]
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).
Nom | Impératif | Fonctionnel | Objets | Déclaratif | Concurrent |
4D | X | ||||
ActionScript | X | X | |||
Ada | X | X | |||
Algol | X | ||||
Anubis | X | X | |||
APL | X | APL2 | |||
Assembleur | X | ||||
BASIC | X | (Visual Basic) | |||
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 | ||||
ColdFusion | 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 |
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 :
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…