|
 |
Cet article fait partie de la série Langages de programmation |
| Langages à objets |
Ada 95 - C++ - C# Common Lisp Delphi - Eiffel - Java Nice - Oz - Python Ruby - Simula - Lisaac Smalltalk - Visual Basic |
| Langages impératifs |
APL - ASP - Assembleur BASIC - C - Cobol Forth - Fortran - Logo OPL - Pascal - Perl - PHP |
| Langages fonctionnels |
Erlang - Haskell ML/OCaml - Oz Lisp/Common Lisp Scheme |
| Langages déclaratifs |
| Clips - Oz - Prolog |
| Langages concurrents |
Ada 95 - Erlang Java - Oz |
| Langages balisés |
HTML - SGML - XML Dialectes XML S-expressions |
| Voir aussi |
Conception - Codage Tests - Optimisations |
La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de matériel, cf. VHDL).
Pratiques
Techniques de programmation
- Programmation concurrente
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 ou sans gestion de mémoire automatisée, 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 de par son caractère « programmable » (un langage de programmation programmable...), il peut intégrer d'autres « paradigmes » de programmation en son sein (par exemple la programmation logique, ou 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 |
| Ada |
X |
|
X |
|
X |
| Algol |
X |
|
|
|
|
| APL |
X |
|
APL2 |
|
|
| Assembleur |
X |
|
|
|
|
| ArmScript |
X |
|
|
|
|
| BASIC |
X |
|
(Visual Basic) |
|
|
| Caml |
X |
X |
X |
|
|
| C |
X |
|
|
|
|
| C++ |
X |
|
X |
|
|
| C# |
X |
|
X |
|
|
| COBOL |
X |
|
|
|
|
| ColdFusion |
X |
|
|
|
|
| Common Lisp |
X |
X |
X |
(screamer) |
(erlisp) |
| Eiffel |
X |
|
X |
|
|
| Erlang |
|
X |
|
|
x |
| Fortran |
X |
|
|
|
|
| Forth |
X |
|
|
|
|
| Haskell |
|
X |
(O'Haskell) |
|
(Concurrent Haskell) |
| Java |
X |
|
X |
|
x |
| Logo |
X |
|
|
|
|
| Lisaac |
X |
X |
X |
|
|
| Miva Script |
X |
|
X |
|
|
| ML |
X |
X |
(Objective CAML) |
|
(Concurrent ML) |
| Objective C |
X |
|
X |
|
|
| Oz |
X |
X |
X |
x |
x |
| Pascal |
X |
|
(Delphi) |
|
|
| Perl |
X |
|
X |
|
|
| PHP |
X |
|
(PHP 4+) |
|
|
| Python |
X |
|
X |
|
|
| Prolog |
|
|
|
X |
(Concurrent Prolog) |
| Ruby |
X |
X |
X |
|
|
| Scheme |
X |
X |
(TinyClos) |
|
(gambit, termite) |
| Scriptol |
X |
|
X |
|
|
| Simula |
X |
|
X |
|
X |
| Smalltalk |
X |
|
X |
|
|
| Tcl |
X |
|
(Incr Tcl, Snit, XOTcl) |
|
|
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 :
- ASN.1
- DTD SGML
- DTD XML
- XML Schéma
- Relax NG
Langages spécialisés pour la communication avec une base de données
Langages de manipulation de chaînes de caractères
- SNOBOL StriNg Oriented symBOlic Language (Langage Symbolique Orienté Chaînes de Caractères)
- awk
- Perl
- sed
Langages spécialisés Web
- Exécution par le serveur HTTP (côté serveur) :
- ASP
- JSP (issu de Java, basé sur des Servlets)
- PHP
- XSP (issu de XML, soutenu par Apache)
- D'une manière générale, les langages non spécialisés (notamment Perl et C) peuvent également être utilisés via Common Gateway Interface
- Exécution par le navigateur Web (côté client) :
- JavaScript ou ECMAScript
- VBScript
- applets écrites en Java
- ActionScript de Macromedia Flash
Langages de description de page
voir Langage de balisage
Langages de programmation théorique
- Lambda-calcul
- Pi-calcul
- Join-Calcul
- Récursion Primitive
- Système T de Kurt Gödel
- BNF
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
Pour rendre la programmation plus difficile
- Brainfuck (ou encore F*ckF*ck, Ook ou spoon)
- Intercal
- Malbolge
- Unlambda
Non classés
Langages spécialisés
- ABEL : langage pour la programmation électronique des PLD
- R : 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
- VRML : description de scènes en trois dimensions
Bibliothèques graphiques
- Allegro - multi-plateforme, Multimédia, Jeux
- DirectX - 3D, Multimédia
- GTK+ - multi-plateforme, Environnement graphique
- JFC - Environnement graphique, 2D
- OpenGL - 3D
- Qt - multi-plateforme, Interface utilisateur
- Quartz - Environnement graphique
- SDL - Video
- SWT - multi-plateforme, Interface utilisateur
- Tk - multi-plateforme - Interface graphique associée à Tcl
- wxWidgets - multi-plateforme - Environnement graphique
- Xlib - 2D
|