Les bibliothèque (programmation)

Comme nous l'avons vu dans la section "les fonctions", un programme informatique est optimisable en mettant en évidence certains blocs de code sous forme d'une ou plusieurs fonctions afin de réduire sa taille tout en réutilisant ces bouts de code un peu partout dans notre programme. Pour encore aller plus loin, nous pouvons rassembler ces fonctions dans une structure particulière appelée bibliothèque, appelée aussi library en anglais, pour encore optimiser notre code est ce, dans la perspective de réduire la taille de notre exécutable ou script. Ce format de script ou de code est généralement une solution qui nous permet de partager un ensemble de fonctions, de structures ou de bases de données que nous pouvons faire référence à chaque fois que nous en avons besoin.

Dans ce même principe, si vous souhaitez regrouper ou rassembler un ensemble de fonctions, de données, etc. et que vous souhaitez les partager avec d'autres amis, collègues, ou sur internet, ... il est fortement recommendé de vous créer votre propre bibliothèque de code.

Définition informatique

Les bibliothèques en codage informatique, appelées aussi librairies en référence à leur nomination en anglais, sont un ensemble de code utile spécialement par les développeurs expérimentés. Ces bouts de code permettent essentiellement de simplifier la solution globale, de l'optimiser et de la rationaliser.

Le schéma simplifié ci-dessous nous schématise comment un code source fait appel à plusieurs bibliothèques en même temps durant son exécution:

schéma simplifie d'un code faisant appel à plusieurs bibilotheques

Le principe de fonctionnement des bilbiothèques

Pour vous expliquer comment fonctionne les libraries dans l'univers de la programmation informatique, nous allons introduire l'exemple d'un afficheur LCD que nous souhaitons la faire piloter avec notre carte Arduino :

Imaginons donc que nous avons acheté un écran LCD et que nous souhaitons afficher le mot "Hello electro-Robot" avec un simple code écrit en C++ sous notre Arduino. Ce dernier est généralement fourni avec un mini-CD ou un lien web pour nous permettre de configurer correctement son pilote et ainsi être reconnu par notre système. En effet, ces fichiers, appelés pilotes, sont l'ensemble de bibliothèques fournis avec qui vont nous permettre de communiquer ou transposer l'information entre notre carte Arduino et l'écran LCD que nous souhaitons programmer.

Le schéma ci-dessous nous détaille ce mode de fonctionnement :

Schéma simplifier d'une application Arduino avec un afficheur LCD

Prenons maintenant un deuxième exemple dont nous mettons en évidence une bibliothèque propriétaire à nous : imaginons que nous souhaitons écrire en C++ un programme qui simule une porte logique ET (AND) qui utilise une bibliothèque personnalisée. Nous pouvons écrire ces deux blocs de codes tels que :

Le fichier fonction_ET.cpp

bool fonction_ET(bool var1, bool var2) {
    return var1 && var2;
}

et le fichier main.cpp

#include <iostream>
#include "fonction_ET.cpp"

int main() {
    bool a, b;

    std::cout << "Entrez deux valeurs logiques (0 ou 1) : " << std::endl << " a : ";
    std::cin >> a;
    std::cout << std::endl << " b : ";
    std::cin >> b;

    bool result = fonction_ET(a, b);

    std::cout << std::endl << a << " ET " << b << " = " << result << std::endl;

    return 0;
}


Il est à noter que pour que notre code source ci-dessous fonctionne, il est nécessaire d'inclure parfois un fichier d'en-tête, appelé en anglais header. Un fichier header, appelé aussi fichier .h (header) en C++, est un fichier d'en-tête qui nous permet de saisir la liste des déclarations qu'on veut partager avec plusieurs fichiers de notre programme. Dans notre cas de figure, nous n'avons pas besoin de ce fichier .h. Vous pouvez compiler l'exemple proposé ci-dessous en compilant uniquement les deux fichiers fonction_ET.cpp et main.cpp. Il est uniquement demandé d'enregistrer les deux fichiers dans le même répertoire pour que le compilateur ne rencontre pas de problème et ne nous fasse pas sortir une erreur type fichier non trouvé.

Travaux dirigés

Projet C++ : Exemple de la fonction logique (écrit avec l'éditeur Geany et compilé avec MinGW)

Si vous souhaitez tester l'exemple proposé ci-dessous, vous pouvez télécharger les deux fichiers sources fonction_ET.cpp et main.cpp écrits en langage C++ à partir de notre espace Github, compiler l'exemple et l'éxecuter :