<page> <title>Langage de programmation</title> <id>6923</id> <revision> <id>31167495</id> <timestamp>2008-06-30T17:44:20Z</timestamp> <contributor> <username>GaMip</username> <id>82500</id> </contributor> <minor /> <comment>/* Langages spécialisés */ + PROMELA</comment> <text xml:space="preserve">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 (informatique)|programme]], de faire abstraction de certains mécanismes internes, généralement des activations et désactivations de [[commutateur (électronique)|commutateurs électroniques]], qui aboutissent au résultat désiré. L'activité de rédaction du [[code source]] d'un programme est nommée [[programmation informatique|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. »<ref>[[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}}</ref> == 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é, * [[Langage de haut niveau|haut niveau]]/[[Langage de bas niveau|bas niveau]], * [[interpréteur|interprété]]/[[compilateur|compilé]], * avec/sans [[Ramasse-miettes|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). {| border="0" align="center" style="border: 1px solid #999; background-color:#FFFFFF; text-align:center" |+ '''Classification des langages généralistes''' |-align="center" bgcolor="#CCCCCC" |'''Nom''' ||'''[[Programmation impérative|Impératif]]''' ||'''[[Programmation fonctionnelle|Fonctionnel]]''' || '''[[Programmation orientée objet|Objets]]''' || '''[[Programmation déclarative|Déclaratif]]''' || '''[[Programmation concurrente|Concurrent]]''' |----bgcolor="#EFEFEF" | [[4ème Dimension (langage)|4D]] || X || || || || |---- | [[ActionScript]] || X || || X || || |----bgcolor="#EFEFEF" | [[Ada (langage)|Ada]] || X || || X || || X |---- | [[Algol (langage)|Algol]] || X || || || || |----bgcolor="#EFEFEF" | [[Langage Anubis|Anubis]] || || X || X || || |---- | [[APL (langage)|APL]] ||X || || APL2 || || |----bgcolor="#EFEFEF" | [[Langage Assembleur|Assembleur]] || X || || || || |---- | [[BASIC]] || X || || || || |----bgcolor="#EFEFEF" | [[Caml]] || X || X || || || |---- | [[CDuce]] || || X || | |----bgcolor="#EFEFEF" | [[C (langage)|C]] || X || || || || |---- | [[C plus plus|C++]] || X || || X || || |----bgcolor="#EFEFEF" | [[C sharp|C#]] || X || || X || || |---- | [[COBOL]] || X || ||COBOL 2002 || || |----bgcolor="#EFEFEF" | [[ColdFusion]] || X || || || || |---- | [[Common Lisp]] || X || X || X || (screamer) || |----bgcolor="#EFEFEF" | [[DarkBasic]] || X || || X || || |---- | [[Eiffel (langage)|Eiffel]] || X || || X || || |----bgcolor="#EFEFEF" | [[Erlang (langage)|Erlang]] || || X || || || X |---- | [[Fortran]] || X || || || || |----bgcolor="#EFEFEF" | [[Forth (langage)|Forth]] || X || || || || |---- | [[Haskell]] || || X || (O'Haskell) || || |----bgcolor="#EFEFEF" | [[ICON]] || X || || || || |---- | [[Java (langage)|Java]] || X || || X || || |----bgcolor="#EFEFEF" | [[Limbo (langage)|Limbo]] || X || || X || || |---- | [[Logo (langage)|Logo]] || X || || || || |----bgcolor="#EFEFEF" | [[ML (langage)|ML]] || X || X || ([[OCaml|Objective CAML]]) || || |---- | [[Natural]] || X || || || || |----bgcolor="#EFEFEF" | [[Objective C]] || X || || X || || |---- | [[Langage Oz|Oz]] || X || X || X || X || X |----bgcolor="#EFEFEF" | [[Pascal (langage)|Pascal]] || X || || ([[Delphi (langage)|Delphi, Kylix]]) || || |---- | [[Perl (langage)|Perl]] || X || X || X || || |----bgcolor="#EFEFEF" | [[PHP: Hypertext Preprocessor|PHP]] || X || || (PHP 4+) || || |---- | [[PL/I]] || X || || || || |----bgcolor="#EFEFEF" |[[Python (langage)|Python]] || X || X || X || ||Stackless |---- |[[Prolog]] || || || || X || |----bgcolor="#EFEFEF" | RPG ou [[Générateur automatique de programmes|GAP]] || X || || || || |---- |[[Ruby]] || X || X || X || || |----bgcolor="#EFEFEF" |[[Scala (langage)|Scala]] || X || X || X || || X |---- |[[Scheme]] || X || X || (TinyClos) || ||gambit, termite |----bgcolor="#EFEFEF" |[[Simula]] || X || || X || || |---- |[[Smalltalk]] || X || || X || || |----bgcolor="#EFEFEF" |[[Tool Command Language|Tcl]] || X || X || (Incr Tcl, Snit, XOTcl) || || |---- | [[W-Langage]] || X || || X ([[WinDev]], [[WebDev]], [[WinDev Mobile]]) || || |----bgcolor="#EFEFEF" |[[XSLT]] || X || || || X || |} ==== Langages déclaratifs ==== *[[Langage Oz| Oz]] *[[Langage Mercury|Mercury]] *[[Prolog]] pour <nowiki>PROgrammation LOGique</nowiki> *[[Clips (langage)|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]] *[[SGML|DTD SGML]] *[[Extensible markup language|DTD XML]] *[[XML Schema]] *[[Relax NG]] ==== Langages spécialisés pour la communication avec une [[base de données]]==== * [[4GL]] * [[SAS (langage)|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: Hypertext Preprocessor|PHP]]. **[[Active server pages|ASP]]. **[[JavaServer Pages|JSP]] (issu de [[Java (langage)|Java]], basé sur des [[Servlet]]s). **[[Python (langage)|Python]]. **[[Perl (langage)|Perl]]. **[[Tcl (langage)|Tcl]]. **''Framework'' [[Ruby on Rails]] basé sur le langage [[Ruby]]. **[[XSP]] (issu de [[Extensible markup language|XML]], soutenu par [[Apache (logiciel)|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]]. **[[applet]]s écrites en [[Java (langage)|Java]]. **Tclets écrits en [[Tcl (langage)|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 mécanique|tournage]], ou de [[fraisage]]… *[[Programmation de commande numérique]] ==== Langages de programmation des [[Automate programmable industriel|automates programmables industriels (API)]] ==== * [[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 ==== * [[Advanced Boolean Expression Language|ABEL]], langage pour la programmation électronique des [[Circuit logique programmable|PLD]] * [[CDuce]], langage fonctionnel d'ordre supérieur pour la manipulation de documents au format XML. * [[Esterel (langage)|Esterel]], [[Lustre (langage)|Lustre]], [[Signal (langage de programmation)|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 * [[Langage R|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 *[[Very High Speed Integrated Circuit Hardware Description Language|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 Project| Fenix]] * [[ABAP]] * [[Langage Anubis| Anubis]] * [[ArmScript]] * [[awk]] * [[Lisaac]] * [[Miva Script| Miva Script]] * [[SNOBOL]] * [[sed (informatique)|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}} [[Catégorie:Langage de programmation|*]] <!-- [[fr:Langage de programmation]] --> {{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ân]]</text> </revision> </page>