Langages

Les langages


1.       Définition et rôle des langages
En effet, on appelle langage de programmation, en informatique, un ensemble de signes (ou symboles) et de règles utilisés pour programmer les ordinateurs. La notion de règle est liée à la syntaxe, alors que les symboles constituent l’alphabet du langage.

L’utilisateur qui veut transmettre ses ordres à l’ordinateur le fait par l’intermédiaire de langages de programmation. Ces derniers se situent en quelque sorte à mi-chemin entre le langage naturel et le langage machine. En effet, ils sont suffisamment proches des langages naturels pour que les programmes puissent être facilement écrits, compris et modifiés.
2.      Les caractéristiques des langages de programmation
Les langages de programmation partagent avec les langages naturels un certain nombre de caractéristiques qui sont de trois ordres : lexicale, syntaxique et sémantique.
1.1.     Les caractéristiques lexicales
Un langage de programmation comprend généralement un certain nombre de symboles constituant son alphabet.
En plus de son alphabet, un langage de programmation comprend un certain nombre de règles de nature lexicale. Celles-ci spécifient le mécanisme de formation des mots du langage en question. 
Dans tout langage de programmation, on retrouve deux catégories de mots :
-   Les mots réservés (ou mots clés), sont définis par le langage et toute tentative de redéfinition de la part de l’utilisateur donne lieu à des erreurs. À titre d’exemple, on peut citer, en PASCAL, le mot BEGIN qui sert à indiquer le début d’un bloc d’instructions et END qui en indique la fin.
-   Les identificateurs, ce sont des mots choisis par le programmeur pour représenter un objet du programme, conformément aux règles lexicales du langage.
1.2.     Les caractéristiques syntaxiques
Un langage de programmation est aussi caractérisé par sa syntaxe. En effet, même si tous les mots utilisés dans un programme sont individuellement et lexicalement valides, les instructions qui en découlent ne le sont pas nécessairement.
Tout programme doit respecter la syntaxe du langage dans lequel il est écrit. On comprendra dès lors que l’oubli d’un simple mot ou même d’un caractère dans une instruction donne lieu à des erreurs.
1.3.     Les caractéristiques sémantiques
D’où la nécessité pour un langage de programmation de recourir à des instructions suffisamment significatives en regard des opérations à effectuer.
3.       La classification des langages de programmation
En référence à leur proximité du langage naturel, les langages de programmation sont répartis en deux catégories : les langages de bas niveau et les langages de haut niveau.
1.4.     Les langages de bas niveau
Les langages de bas niveau sont plus proches de la machine que de l’homme. Ils regroupent les langages machines et les langages d’assemblage ou assembleurs.
·        Le langage machine
À l’origine, l’écriture d’un programme se faisait en langage machine, à partir d’un alphabet binaire (0,1).
Ainsi, le codage de n’importe quel programme simple se révélait une tâche fastidieuse.
Voici un exemple :
000100000000 01011000 001100010000000000100100
000100000001 01010011 001100010000000000101000
000100000010 01010000 001100100001000001000000
Les langages machines sont donc considérés comme des langages de programmation de première génération. Ainsi le langage machine apparaît donc, de tous les langages de programmation, comme celui qui est le plus difficile et le moins expressif.
·        Le langage d’assemblage
Pour pallier les inconvénients du langage machine, on a eu recours au langage d’assemblage. Le langage d’assemblage est une forme symbolique du langage machine au lieu du numérique, le langage d’assemblage, fait appel à des noms symboliques de type alphabétique pour désigner instructions en mémoire.
Voici le programme équivalent :
LDA X (Charger le nombre X dans la cellule A)
               ADD Y (Ajouter le nombre Y au contenu de cette cellule)
STA Z (Sauvegarder le résultat dans la cellule Z)
Les langages d’assemblage constituent la seconde génération des langages de programmation.
1.5.     Les langages de haut niveau
Les multiples inconvénients des langages de bas niveau ont amené les spécialistes de l’informatique à définir une autre catégorie de langages plus proches du langage humain: ce sont les langages de haut niveau ou de troisième génération. Parmi les langages évolués les plus utilisés actuellement, on peut citer : FORTRAN,  PASCAL, COBOL et C. Pour ce qui est des langages spécialisés, mentionnons SIMULA et LISP etc.
4.      Les types de programmation
En plus de leur proximité du langage naturel, une autre façon de classifier les langages consiste à les regrouper selon le type de programmation qu’ils permettent de réaliser. Ce qui nous amène à distinguer la programmation procédurale, la programmation fonctionnelle, la programmation logique et la programmation par objets.
2.1.     La programmation procédurale
La programmation procédurale, comme son nom l’indique, est étroitement liée à la notion de procédure. On appelle procédure toute séquence d’instructions, auquel on donne un nom, et dont l’exécution peut être demandée de plusieurs endroits d’un programme appelant.
Les langages les plus populaires actuellement dans l’industrie sont de type procédural. On peut citer, entre autres, FORTRAN, COBOL, PASCAL et C.
2.2.     La programmation fonctionnelle
La programmation fonctionnelle consiste à utiliser des langages dont la structure et la syntaxe reposent sur les concepts mathématiques de fonction et de composition de fonctions. Les langages LOGO et LISP en sont des exemples.
Quant aux langages fonctionnels, ils sont dotés d’une grande capacité de traitement symbolique. D’où leur adéquation à résoudre les problèmes d’intelligence artificielle où la manipulation porte sur des données symboliques plutôt que numériques.
2.3.     La programmation logique
Toujours à la recherche de techniques informatiques plus rigoureuses et plus puissantes pour manipuler des connaissances, l’intelligence artificielle en est venue à utiliser la logique comme langage de programmation, ce qui a conduit à un nouveau type relativement simplifié de programmation, baptisé à juste titre programmation logique. Le langage PROLOG, en demeure le plus authentique représentant.
2.4.     La programmation par objets
La programmation par objets, comme son nom l’indique, repose sur la notion d’objet.
On désigne par objet une structure de connaissances constituée d’un certain nombre d’aspects ou d’attributs. Par exemple, un objet Employé peut admettre pour attributs Nom, Sexe, Âge, Adresse, Profession et Numéro. De plus, à chaque aspect on peut associer des facettes telles que valeurs-possibles qui définissent le domaine des valeurs que peut prendre cet aspect, ou valeurs-défaut qui spécifie la valeur par défaut de celui-ci. Ainsi, on peut attribuer à Âge la valeur par défaut 22.
SMALLTALK est le premier véritable langage orienté objet qui a été mis au point. De très nombreux langages faisant explicitement référence aux mêmes concepts sont disponibles ou apparaissent actuellement. On peut citer, entre autres, C++, VISUAL BASIC et PASCAL OBJET.