Programmation
| Image manquante Langage_progr.png image:Langage_progr.png |
| 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 Simula - Smalltalk Visual Basic |
| Langages impératifs |
| APL - ASP - Assembleur BASIC - C - COBOL Forth - FORTRAN - Logo 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
- Algorithmique
- Codage
- Contrôle de version
- Optimisation du code
- Programmation système
- Refactoring
- Test unitaire
Techniques de programmation
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).
| Nom | Impératif | Fonctionnel | Objets | Déclaratif | Concurrent |
| Ada | X | X | X | ||
| Algol | X | ||||
| APL | X | APL2 | |||
| Assembleur | X | ||||
| BASIC | X | (Visual Basic) | |||
| Caml | X | X | X | ||
| C | X | ||||
| C++ | X | X | |||
| C# | X | X | |||
| COBOL | X | ||||
| Common Lisp | X | X | X | (screamer) | |
| 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 | ||
| 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 | X | |||
| Python | X | X | |||
| Prolog | X | (Concurrent Prolog) | |||
| Ruby | X | X | X | ||
| Scheme | X | X | (TinyClos) | ||
| Simula | X | X | X | ||
| Smalltalk | X | X | |||
| Tcl | X |
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 :
Langages de définition de données
Langages de manipulation de chaînes de caractères
- SNOBOL StriNg Oriented symBOlic Language (Langage Symbolique Orienté Chaines de Caractères)
- awk
- Perl
- sed
Langages spécialisés Web
- Exécution par le serveur HTTP (côté serveur) :
- 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…
Pour rendre la programmation plus difficile
- Brainfuck
- 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)
- VRML : description de scènes en trois dimensions
Bibliothèques graphiques
- Allegro - multi-plateforme, Multimédia, [Jeux vidéo|Jeux]
- DirectX - 3D, Multimédia
- Gstreamer - 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
- wxWidgets - multi-plateforme - Environnement graphique
- xine-lib - Multimédia
- Xlib - 2D
Voir aussi
Liens internes
Liens externes
- (fr) Developpez.com, le club des développeurs (de nombreux forums, cours et tutoriels de programmation)
- (en) Computer Languages History
- (fr) A525G - Programmation
- (en) 99 Bouteilles de Bière - Un même programme en plus de 600 langages
- (fr) (en) Programmation Network Security
| Image manquante Symbole-ordinateur.png | Portail Informatique - Accédez d'un seul coup d’œil à toute la série des articles de Wikipédia concernant l'informatique. |
