Par Pauline Sicsik
Vous ne les voyez presque jamais, et pourtant ils vous permettent d’utiliser logiciels et applications. Sans eux, pas de Facebook, pas d’AirBnB, ou d’Uber Eats. Sans eux, pas de filtres Insta ou d’intelligence artificielle capable de dire si sur votre photo se trouve un chat ou un écureuil. Vous avez sûrement déjà entendu parler d’HTML, et la tasse de café du logo de Java vous évoque peut-être quelque chose. Pourtant, les langages de programmation sont à la base de l’écosystème numérique. Alors, de quoi parle-t-on concrètement ?
Qu’est-ce qu’un langage de programmation ?
Commençons par une définition : celle d’un programme informatique. Un programme informatique est une séquence d’instructions textuelles destinées à être exécutées par un ordinateur. Autrement dit, la programmation informatique est le fait de matérialiser une suite d’algorithmes pour qu’ils soient convertis en langage machine puis exécutés par cette dernière.
Chaque programme est écrit par un développeur dans un langage de programmation. Un langage de programmation, c’est donc simplement une notation conventionnelle destinée à formuler des algorithmes en vue de produire les programmes informatiques qui les appliquent. Les langages de programmation fonctionnent comme n’importe quelle langue naturelle : ils permettent de d’exprimer une abstraction grâce à un alphabet, un vocabulaire, des règles de grammaire et de significations.
Concrètement, les langages de programmation permettent de :
- décrire les structures des données qui seront manipulées par l’appareil informatique, c’est-à-dire les façons selon lesquelles les données seront organisées et stockées afin d’être traitées (tableau, liste, file, arbre, graphe…).
- indiquer comment sont effectuées les manipulations, c’est-à-dire selon quels algorithmes. [1]
Les composantes d’un langage de programmation
Règles de syntaxe | Combinaison des unités linguistiques afin qu’elles aient un sens (ponctuation, par exemple) |
Lexique | Instructions construites à partir de symboles : – les mots, à partir de lettres : if, let, then, else… – les opérateurs arithmétiques : +, -, * … – les booléens : &&, ==, > … |
Sémantique | Sens de chacune des phrases qui peut être construite dans un langage (que va-t-il se passer si j’écris ceci ?) |
Alphabet | Par exemple, l’alphabet classique American Standard Code for Information Interchange (chiffres arabes de 0 à 9, lettres minuscules et capitales de A à Z, symboles mathématiques et de ponctuation) ou l’alphabet Unicode |
Commentaires | Textes non traduit et non exécutable qui permettent de laisser des explications. |
Identifiants | Eléments constitutifs du programme qui permettent de le structurer (variables, procédures1, types2…) |
1 : Une procédure, ou encore fonction ou méthode, est un fragment de programme que l’on paramètre une fois puis qu’on peut réutiliser si besoin.
2 : Un type est la classification d’une donnée : nombre entier (‘2’), booléen (‘==’), chaîne de caractère (‘hello’), etc.
Langages de programmation et paradigmes
Un paradigme de programmation est la vision avec laquelle le programmeur aborde la programmation selon des concepts, des théories. C’est un peu le style du programme. Plus concrètement, c’est la manière dont les solutions aux problèmes doivent être formulées dans tel ou tel langage de programmation. Il n’existe pas une théorie permettant de couvrir tous les concepts de la programmation, ce qui implique une variété de paradigmes. Toutefois, la majorité des langages de programmation sont aujourd’hui multiparadigmes.
Parmi les plus utilisés, il y a :
– le paradigme impératif, comparable à une recette de cuisine : on exécute les actions successives/lignes de code qui nous permettent de modifier l’état des ingrédients/du programme jusqu’à aboutir à leur état final : leur plat/l’output du programme.
→ Exemples : C, C++, Pascal, Java, PHP, JavaSript, Python…
– le paradigme déclaratif : énonce le résultat final souhaité sans décrire l’ordre des instructions intermédiaires pour y parvenir. Les instructions intermédiaires sont déterminées automatiquement.
→ Exemples : HTML (déclaratif descriptif), Haskell (déclaratif fonctionnel), Prolog (déclaratif logique) …
– le paradigme événementiel : le programme est exécuté lorsqu’un événement se passe (par exemple, « la souris est déplacée », « le bouton gauche de la souris est pressé »). Il a été introduit par le langage Simula dans les années 1970.
– le paradigme visuel : permet de manipuler des objets bidimensionnels (par exemple des cases, des flèches) par glisser-déposer ; le dessin obtenu est ensuite traduit en programme orienté objet et événementiel.
→ Exemples : Smalltalk, Scratch, Snap
– le paradigme orienté objet : vise à « définir et faire interagir entre eux des objets, compris ici comme tous types de structures issues d’un langage donné ». [2] L’analogie avec le monde réel est simple. Prenez l’objet « vélo ». Ses propriétés sont les suivantes : deux roues, des pédales, couleur rouge. L’objet « vélo » peut réaliser l’action « rouler » et elle peut interagir avec l’objet « cycliste », qui le fait rouler, et l’objet « guidon », qui lui permet de tourner.
→ Exemples : Java, C#, Python, Rhuby, JavaScript, C++, PHP
La programmation orientée objet a joué un grand rôle dans la démocratisation de la science des données, en particulier grâce à la création de librairies, qui permettent d’obtenir des modules, i.e. des “bouts” de code (principe de l’encapsulation), et de l’utiliser dans son programme sans avoir besoin de le coder (principe de l’abstraction), et de la manière qu’il souhaite en fonction de son besoin (principe du polymorphisme). |
Sources :
[1] Rouse, M. (2019, octobre 25). Structure de données. Consulté à l’adresse https://www.lemagit.fr/definition/Structure-de-donnees
[2] QU’EST-CE QUE LA PROGRAMMATION ORIENTÉE OBJET ? (2020, janvier 17). Consulté à l’adresse https://jedha.co/blog/2019/11/22/quest-ce-que-la-programmation-orientee-objet/ /