Langage et paradigme, définitions

Langage

Qu’est-ce qu’un langage informatique ?

Un langage est constitué d’un ensemble de signes doté d’une sémantique, et le plus souvent d’une syntaxe. Contrairement aux langages naturels, qui sont destinés à la communication entre les humains, les langages informatiques ont pour but de décrire l’ensemble des actions consécutives qu’une machine doit effectuer. Les protocoles de communication, qui servent à la communication entre les machines, ne sont donc pas considérés comme des langages informatiques.
Un langage informatique a pour but originel la conception, la mise en œuvre ou l’exploitation d’un système d’information. Néanmoins, ils sont également utilisés pour effectuer d’autres tâches, comme la maintenance du système d’information, la création d’interface graphique, la programmation de commande numérique, la statistique, etc. Les langages de conception (UML, Merise, etc.), les langages de structuration de contenu (HTML, XML, tous les langages de balisage en général), les méthodes formelles, les langages de définition de données et les langages de requêtes (SQL, etc.) sont des langages informatiques, ainsi que, bien sûr, les langages de programmation.
Ce type de langage est destiné à la fois à la machine et à l’humain. En effet, les instructions contenues dans le code correspondent à des actions que doit effectuer le processeur. En outre, le code doit pouvoir être écrit et compris par les humains. Le langage utilisé par le processeur est le langage machine, constitué de données binaires. Pour que le processeur exécute les instructions définies dans le code du langage informatique, il faut d’abord le transformer en langage machine.

Référence :
http://www.infoclick.fr/ccm/langages/langages.htm

Qu’est-ce qu’un langage de programmation ?

Un langage de programmation fournit une abstraction de niveau supérieur pour utiliser une machine, car très peu d’humains comprennent le langage machine. La notion de programme est apparue au cours de la deuxième moitié du XIXème siècle, mais les premiers langages de programmation datent des environs de l’année 1950. Dans les années 60, de nombreux langages spécialisés sont créés. Les langages dits généraux commencent à s’imposer à partir des années 70 (langage C et Pascal). Les langages orientés objet apparaissent dans les années 80. Vers 1990 arrivent les langages Java, Perl et Python. La programmation Internet apparait dans les années 2000.


Étant donné que tout le monde peut créer son propre langage de programmation, il est impossible d’estimer le nombre total de langages de programmation avec précision, mais il est sûr que ce nombre est de l’ordre de quelques milliers.
La transformation du code source d’un langage de programmation en langage machine peut se faire de différentes façons. En premier lieu, le code peut être interprété par un logiciel interpréteur, qui va lire chaque ligne du code au cours de l’exécution du programme, et envoyer l’instruction correspondante au processeur sous forme binaire. En second lieu, le code peut être transformé directement sous forme exécutable par un compilateur. Cette solution permet une meilleure performance, parce que le programme est compilé une bonne fois pour toutes. Cependant, elle nécessite de recompiler le code source à chaque modification. Elle garantit également la sécurité du code source, car le programme ainsi diffusé est en langage machine.

Références :
http://www.scriptol.fr/programmation/histoire-langages.php
Le langage mathématique et les langages de programmation, Gilles Dowek, http://www.lix.polytechnique.fr/~dowek/Vulg/langagelangages.pdf
The Art of Computer Programming, Donald Knuth

Paradigme

Qu’est-ce qu’un paradigme de programmation


Une fois défini ce que l’on entend exactement par langage de programmation on se permettra d’utiliser l’expression «langage» seule pour «langage de programmation».

Après un minimum de recherche, force est de constater que la notion de paradigme revient régulièrement lorsqu’il s’agit de décrire un langage de programmation.
De manière générale un paradigme est un mode de représentation d’une réalité quelconque. C’est une manière structurée de voir et de concevoir. Ainsi, un paradigme de programmation est une manière de penser, d’écrire et de structurer un programme et donc par extension son code source. Le code source étant lui-même régit par la syntaxe du langage utilisé, on retombe effectivement sur le fait qu’un langage est particulièrement caractérisé par son (ou ses) paradigme(s) de programmation.

Les paradigmes de programmation sont très nombreux et à un langage ne correspond pas un unique paradigme. La plupart du temps un langage autorise plusieurs paradigmes voire des paradigmes «dégénérés» dans le sens où toutes les fonctionalité de ces derniers ne sont pas forcément présente dans le langage. Tout ceci rend l’affectation de paradigme à un langage particulièrement ardue et semble être une part importante du travail qu’il nous reste à faire dans l’élaboration de notre carte d’identité.
À titre d’exemple et parmis les plus connus, citons la programmation orientée objet qui visualise un programme comme un assemblage d’entités (objets) communiquant entre elles, la programmation fonctionnelle où la base du code est la fonction (au sens mathématique du terme). Parmis les moins utilisés citons la programmation par contrainte ou la programmation par contrat.

À venir, une description plus précise d’un ou deux paradigmes en particulier.

Listes de paradigmes :
http://www.info.ucl.ac.be/~pvr/paradigmes.html
http://en.wikipedia.org/wiki/Programming_paradigm


Comments