Langage de programmation - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Historique

Bien que la notion de programme apparaisse progressivement au cours de la deuxième moitié du XIXe siècle, les premiers langages de programmation n'apparaissent qu'autour de 1950. Chacun pouvant créer son propre langage, il est impossible de déterminer le nombre total de langages existant à l'heure actuelle.

Utilisations

On peut aussi classer les langages de programmation en fonction de leur utilisation car beaucoup de langages sont spécialisés à une application ou à un domaine particulier.

Langages de définition de données

Un langage de définition de données ne permet pas d'effectuer de traitement mais de décrire des structure de données (listes, arbres …) et des instances de ces structures.

XML est par exemple un langage permettant la représentation de données sous forme de structure arborescente ; la partie DDL de SQL sert à décrire des données relationnelles. Les langages qui décrivent des documents peuvent également être considérés comme des langages de définition de données. Ainsi, LaTeX est un exemple de langage de définition de données qui permet d'écrire un document en centralisant sa mise en forme. LaTeX est compilé vers des d'autres langages de description de document, généralement plus « bas niveau » comme PDF ou Postscript.

Ces langages ne sont habituellement pas considérés comme des langages de programmation. Cependant les codes sources produits avec ces langages présentent certains traits de codes sources de programmes comme des structures de contrôle (conditions, boucles...) et des moyens d'interaction avec le système (variable d'environnement, formulaires...). Ils sont donc cités ici à titre indicatif, mais sont à la frontière de la programmation.

Langages de requête

Les langages de requêtes sont destinés à interroger et manipuler les bases de données.

SQL est un langage de requête utilisé par un grand nombre de systèmes de gestion de bases de données tels que Oracle ou SQL Server.

Langages pour pages Web dynamiques

Ce type de langages est utilisé pour une plus grande interaction entre un client et un serveur.

Du côté du serveur Web, cela permet de produire des pages dont le contenu est généré à chaque affichage. Ces langages sont par ailleurs souvent couplés avec un langage pour communiquer avec des bases de données (exemple : PHP).

Côté client (en général le navigateur web), les langages de réagir à certaines actions de l'utilisateur sans avoir à questionner le serveur. Par exemple, le JavaScript d'une page Web peut réagir aux saisies de l'utilisateur dans un formulaire (et vérifier le format des données).

Certains langages permettent de développer à la fois les aspects client et serveur. C'est le cas d'Ocsigen, de Hop ou bien encore du Server-Side JavaScript.

Langages de programmation théorique

On désigne parfois par langages de programmation théoriques les systèmes formels utilisés pour décrire de façon théorique le fonctionnement des ordinateurs. Ils ne servent pas à développer des applications mais à représenter des modèles et démontrer certaines de leurs propriétés.

On peut citer la machine de Turing et le λ-calcul de Church, qui datent tous les deux des années 1930, et donc antérieurs à l'invention de l'ordinateur. Le λ-calcul a par la suite servi de base théorique à la famille des langages de programmation fonctionnelle. Dans les années 1980, Robin Milner a mis au point le π-calcul pour modéliser les systèmes concurrents.

Pour rendre la programmation plus difficile

Les langages exotiques ont pour but de créer des grammaires complètes et fonctionnelles mais dans un paradigme éloigné des conventions. Beaucoup sont d'ailleurs considérés comme des blagues.

Ces langages sont généralement difficiles à mettre en pratique et donc rarement utilisés. Par exemple, le Piet permet de programmer à l'aide d'images matricielles.

On peut également citer le Brainfuck qui est un language minimaliste et Turing-complet ( 8 instructions seulement ). Il est prévu pour tourner sur une machine de Turing avec un compilateur de seulement 171 octets.

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.
  • Forme de Backus-Naur (BNF), formalisation des langages de programmation
  • PROMELA, langage de spécification de systèmes asynchrones
  • VRML, description de scènes en trois dimensions

Langages synchrones

Langages de programmation synchrones pour les systèmes réactifs : Esterel, Lustre.

Langages à vocation pédagogique

Les pseudo-codes (comme le Langage K) ont généralement un but uniquement pédagogique.

Logo est un langage fonctionnel simple à apprendre.

Langages pour l'électronique numérique

  • Verilog, VHDL : langages de description matérielle, permettant de synthétiser de l'électronique numérique (descriptions de portes logiques) et d'en simuler le fonctionnement
  • SystemC, langage de description matérielle de plus haut niveau que les précédents et permettant une simulation plus rapide

Langages pour la statistique

R, SAS et xLispStat sont à la fois un langage de statistiques et un logiciel.

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…

Langages de programmation des 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

Langages de programmation audio

Nyquist est un langage de synthèse et d'analyse sonore. Pure Data est un logiciel de création musicale graphique qui repose sur un langage de programmation procédural.

Page générée en 0.057 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise