Program libraries · Bibliothèques de programmes
| English | Français |
|---|---|
| program library/ˈprəʊɡræm ˈlaɪbrəri/ | bibliothèque de programmes |
| subroutines/ˈsʌbruːtiːnz/ | sous-programmes |
| library routines/ˈlaɪbrəri ruːˈtiːnz/ | routines de bibliothèque |
| static library/ˈstætɪk ˈlaɪbrəri/ | bibliothèque statique |
| executable/ɪɡˈzekjʊtəbl/ | exécutable |
| dynamic library/daɪˈnæmɪk ˈlaɪbrəri/ | bibliothèque dynamique |
Eleven lines that broke the internet
- In March 2016 a programmer deleted a tiny library called
left-padfrom a public repository. It was eleven lines long: it added spaces to the front of a string. - Within hours, builds failed at companies around the world. Thousands of programs had never written those eleven lines. They had all borrowed them, and the borrowing had been invisible until the moment it stopped working.
- That is how modern software is made. A program library 程序库 is the borrowing, done on purpose, and this lesson is what it gives a developer, what it costs, and the two ways it can be attached to a program.
Onze lignes qui ont brisé Internet
- En mars 2016, un programmeur a supprimé une petite bibliothèque appelée
left-paddepuis un dépôt public. Elle faisait onze lignes : elle ajoutait des espaces au début d'une chaîne. - En quelques heures, les compilations ont échoué dans des entreprises du monde entier. Des milliers de programmes n'avaient jamais écrit ces onze lignes. Ils les avaient toutes empruntées, et cet emprunt était invisible jusqu'à ce qu'il cesse de fonctionner.
- C'est ainsi que le logiciel moderne est fabriqué. Une bibliothèque de programmes 程序库 est cet emprunt, fait intentionnellement, et cette leçon explique ce qu'elle apporte au développeur, son coût et les deux façons dont elle peut être liée à un programme.
What a program library is
- A program library is a collection of pre-written, tested routines, subroutines 子程序, classes and modules, that a program can use instead of writing its own.
- A maths library, a graphics library, a network library, a path-finding library, a compression library: each solves one area of problems once, for every program that needs it.
- Software under development is normally constructed from such library routines 库例程 plus the code that is specific to the new program.
The new code is the small part; the borrowed code is the large part
Ce qu'est une bibliothèque de programmes
- Une bibliothèque de programmes est un ensemble de routines pré-écrites et testées, de sous-routines 子程序, classes et modules, qu'un programme peut utiliser au lieu d'écrire les siennes propres.
- Une bibliothèque mathématique, graphique, réseau, recherche de chemin, de compression : chacune résout un domaine de problèmes une fois, pour tout programme qui en a besoin.
- Un logiciel en développement est normalement construit à partir de telles routines de bibliothèque 库例程 plus le code spécifique au nouveau programme.

Le nouveau code représente la petite partie ; le code emprunté représente la grande partie
Computing concept lab · Laboratoire de concepts informatiques
Classify concrete examples by the computing idea they demonstrate. · Classez les exemples concrets selon le concept informatique qu'ils illustrent.
A program library is: · Une bibliothèque de programmes est :
Libraries provide ready-made, tested code (maths, graphics, network…) that a program can call instead of writing its own. · Les bibliothèques fournissent du code prêt à l'emploi et testé (mathématiques, graphismes, réseau…) qu'un programme peut appeler au lieu de l'écrire lui-même.
A collection of ready-made, reusable, tested code is a program ______. · Un ensemble de code prêt à l'emploi, réutilisable et testé est une ______ de programmes.
Libraries save time and reduce bugs. · Les bibliothèques font gagner du temps et réduisent les bugs.
The benefits to the developer
- The routines are already written and tested, so development is faster and cheaper.
- They are reliable: used by many programs, so largely error-free.
- The developer needs no expertise in that area, graphics, encryption, path-finding, and can spend the time on the program's own features.
- The program is easier to maintain, because common code lives in one place, and a team can work in parallel, each member using the same routines.
Les avantages pour le développeur
- Les routines sont déjà écrites et testées, donc le développement est plus rapide et moins coûteux.
- Elles sont fiables : utilisées par de nombreux programmes, elles sont donc largement exemptes d'erreurs.
- Le développeur n'a pas besoin d'expertise dans ce domaine, graphismes, chiffrement, recherche de chemin, et peut consacrer son temps aux fonctionnalités spécifiques du programme.
- Le programme est plus facile à maintenir, car le code commun vit à un endroit unique, et une équipe peut travailler en parallèle, chaque membre utilisant les mêmes routines.
A benefit of using a library is that the code is: · Un avantage d'utiliser une bibliothèque est que le code est :
Library code is tested, widely used and standardised — reusing it saves time and improves reliability. · Le code de bibliothèque est testé, largement utilisé et standardisé ; sa réutilisation fait gagner du temps et améliore la fiabilité.
Which are benefits to a developer of building software from library routines? Select all · tout that apply. · Quels sont les avantages pour un développeur de créer des logiciels à partir de routines de bibliothèque ? Sélectionnez tous ceux qui s'appliquent.
Tested routines, no expertise needed, easier maintenance. The program's own code still has to be tested. · Routines testées, pas besoin d'expertise, maintenance facilitée. Le propre code du programme doit tout de même être testé.
The drawbacks
- The routine may not fit the exact need, and the developer cannot change it, so they must work around its limits.
- The program depends on the library: a bug, a missing update or a withdrawn library, as with
left-pad, becomes the program's problem. - The library's licence may restrict how the program can be sold or shared, and unused routines can make the program larger.
Les inconvénients
- La routine peut ne pas correspondre exactement au besoin, et le développeur ne peut pas la modifier, il doit donc contourner ses limites.
- Le programme dépend de la bibliothèque : un bug, une mise à jour manquante ou une bibliothèque retirée, comme avec
left-pad, devient le problème du programme. - La licence de la bibliothèque peut restreindre la commercialisation ou le partage du programme, et les routines inutilisées peuvent agrandir le programme.
Worked example: the restaurant robot
- A team writing the software for a restaurant robot uses a program library that includes a routine to find the shortest path between tables. Explain two benefits and one drawback to the team.
- Benefit: the routine is already written and tested, so the team saves time and can trust its results. Benefit: the team need not understand path-finding algorithms themselves and can spend the time on the robot's own features.
- Drawback: the routine may not handle the restaurant's exact needs, moving chairs, one-way aisles, and the team cannot alter it, so they may have to work around its limits.
- Tie each point to this team and this routine. A generic "saves time" earns less than "saves the time of writing and testing a path-finding algorithm".
Exemple résolu : le robot restaurant
- Une équipe développant le logiciel d'un robot restaurant utilise une bibliothèque incluant une routine pour trouver le chemin le plus court entre les tables. Expliquez deux avantages et un inconvénient pour l'équipe.
- Avantage : la routine est déjà écrite et testée, l'équipe gagne du temps et peut se fier à ses résultats. Avantage : l'équipe n'a pas besoin de comprendre les algorithmes de recherche de chemin et peut consacrer du temps aux fonctionnalités du robot.
- Inconvénient : la routine peut ne pas gérer les besoins exacts du restaurant, déplacer des chaises, couloirs à sens unique, et l'équipe ne peut pas la modifier, elle devra donc contourner ses limites.
- Reliez chaque point à cette équipe et cette routine. Un « gain de temps » générique rapporte moins que « gagner le temps d'écrire et tester un algorithme de recherche de chemin ».
Which is a drawback for the robot team of using the path-finding routine from a library? · Quel est un inconvénient pour l'équipe robotique d'utiliser la routine de recherche de chemin depuis une bibliothèque ?
The team cannot change library code, so any mismatch with their needs must be worked around. Not needing to understand the algorithm is a benefit, not a drawback. · L'équipe ne peut pas modifier le code de la bibliothèque, donc tout désalignement avec leurs besoins doit être contourné. Ne pas avoir à comprendre l'algorithme est un avantage, pas un inconvénient.
Static libraries
- A static library 静态库 is copied into the executable 可执行文件 when the program is compiled and linked.
- The program then stands alone: it needs no other file to run.
- The cost: every program carries its own copy, so executables are larger, and a library update means rebuilding every program that uses it.
Bibliothèques statiques
- Une bibliothèque statique 静态库 est copiée dans l'exécutable 可执行文件 lors de la compilation et du lien du programme.
- Le programme peut alors fonctionner seul : il n'a besoin d'aucun autre fichier pour s'exécuter.
- Le coût : chaque programme porte sa propre copie, donc les exécutables sont plus volumineux, et une mise à jour de la bibliothèque implique de recompiler tous les programmes qui l'utilisent.
A static library differs from a dynamic library because it is: · Une bibliothèque statique diffère d'une bibliothèque dynamique car elle est :
A static library is built into the executable; a dynamic library is loaded at run time and shared between programs. · Une bibliothèque statique est intégrée à l'exécutable ; une bibliothèque dynamique est chargée à l'exécution et partagée entre les programmes.
Dynamic libraries and DLL files
- A dynamic library 动态库, a Dynamic Link Library (DLL) on Windows or a
.sofile on Linux, stays a separate file and is loaded into memory only when a program calls it, at run time. - Executables are smaller; several running programs share one copy in memory; and a DLL can be updated once, a bug fix or a new device, without recompiling the programs that use it.
- Memory is used only while the library is needed. The cost: the program will not run if the DLL is missing or the wrong version.
Copied in at compile time, or loaded and shared at run time
Bibliothèques dynamiques et fichiers DLL
- Une bibliothèque dynamique 动态库, une Dynamic Link Library (DLL) sous Windows ou un fichier
.sosous Linux, reste un fichier séparé et n'est chargée en mémoire que lorsqu'un programme l'appelle, au temps d'exécution. - Les exécutables sont plus petits ; plusieurs programmes en cours d'exécution partagent une seule copie en mémoire ; et une DLL peut être mise à jour une seule fois, correction de bug ou nouveau périphérique, sans recompiler les programmes qui l'utilisent.
- La mémoire n'est utilisée que tant que la bibliothèque est nécessaire. Le coût : le programme ne s'exécutera pas si la DLL est absente ou de mauvaise version.

Copiée au moment de la compilation, ou chargée et partagée au temps d'exécution
A dynamic library can be shared by many programs and updated once for all of them. · Une bibliothèque dynamique peut être partagée par de nombreux programmes et mise à jour une fois pour tous.
Because it is loaded at run time, one shared dynamic library serves many programs; updating it fixes them all without rebuilding each. · Parce qu'elle est chargée à l'exécution, une bibliothèque dynamique partagée sert de nombreux programmes ; la mettre à jour corrige tous les programmes sans recompiler chacun.
Match each trait to a static or a dynamic library. · Reliez chaque caractéristique à une bibliothèque statique ou dynamique.
Static linking copies code into the executable (bigger, self-contained); dynamic linking loads a shared library at run time (smaller, updatable once for all). · Le lien statique copie le code dans l'exécutable (plus gros, autonome) ; le lien dynamique charge une bibliothèque partagée à l'exécution (plus petit, mis à jour une fois pour tous).
Put the events of a program using a DLL routine in order. · Mettez les événements d'un programme utilisant une routine DLL dans l'ordre.
Loading happens at run time, on the first call, and one copy serves every program. · Le chargement se fait à l'exécution, lors du premier appel, et une seule copie sert tous les programmes.
Worked example: the benefits of DLL files
- A software developer uses DLL files. Describe the benefits. [4]
- The executable file is smaller, because the library code is not copied into it.
- One copy of the DLL in memory is shared by every running program that uses it, saving memory.
- The DLL can be updated to fix a bug or support a new device without recompiling or reinstalling the programs that call it.
- The library is loaded only when it is needed, so memory is used only while a routine is in use.
Exemple résolu : les avantages des fichiers DLL
- Un développeur de logiciels utilise des fichiers DLL. Décrivez les avantages. [4]
- Le fichier exécutable est plus petit, car le code de la bibliothèque n'y est pas copié.
- Une seule copie de la DLL en mémoire est partagée par tous les programmes en cours d'exécution qui l'utilisent, économisant de la mémoire.
- La DLL peut être mise à jour pour corriger un bug ou prendre en charge un nouveau périphérique sans recompiler ni réinstaller les programmes qui l'appellent.
- La bibliothèque n'est chargée que lorsqu'elle est nécessaire, donc la mémoire n'est utilisée que pendant l'utilisation d'une routine.
Choosing static or dynamic
- The program must run on a machine where nothing else can be installed, an embedded device or a single downloaded file: static, because the executable is self-contained.
- Many programs on one system share the same routines, or the routines change often: dynamic, because one shared copy is smaller and is updated once for all.
- Justify with the trade-off: self-contained but large and rebuilt to update, or small and shared but dependent on the file being present.
Choisir entre statique et dynamique
- Le programme doit s'exécuter sur une machine où rien d'autre ne peut être installé, un dispositif embarqué ou un seul fichier téléchargé : statique, car l'exécutable est autonome.
- De nombreux programmes sur un système partagent les mêmes routines, ou celles-ci changent souvent : dynamique, car une seule copie partagée est plus petite et est mise à jour une seule fois pour tous.
- Justifier par le compromis : autonome mais volumineux et reconstruit pour une mise à jour, ou léger et partagé mais dépendant de la présence du fichier.
A program that must run from a single file on a device where nothing else can be installed should use a dynamic library. · Un programme qui doit s'exécuter à partir d'un seul fichier sur un appareil où rien d'autre ne peut être installé devrait utiliser une bibliothèque dynamique.
A dynamic library is a separate file that must be present. A static library is copied into the executable, which is exactly what a self-contained program needs. · Une bibliothèque dynamique est un fichier séparé qui doit être présent. Une bibliothèque statique est copiée dans l'exécutable, ce qui est exactement ce dont a besoin un programme autonome.
Marks that slip away
- A DLL is loaded at run time, not compile time. That single phrase is the mark.
- Benefits are to the developer: written and tested already, no expertise needed, easier maintenance. "The program runs faster" is not on the list.
- A library is code, not a tool. The IDE is the tool; the library is what the program calls.
- A drawback must be a drawback of using the library: cannot alter it, may not fit, dependency. "It costs money" is rarely the point.
Pièges qui font perdre des points
- Une DLL est chargée au moment de l'exécution, pas au moment de la compilation. Cette seule expression est la clé.
- Les avantages sont pour le développeur : écrit et testé beforehand, aucune expertise requise, maintenance facilitée. « Le programme s'exécute plus vite » n'est pas dans la liste.
- Une bibliothèque est du code, pas un outil. L'IDE est l'outil ; la bibliothèque est ce que le programme appelle.
- Un inconvénient doit être un inconvénient d'utiliser la bibliothèque : impossible à modifier, peut ne pas convenir, dépendance. « Ça coûte de l'argent » n'est généralement pas le point.
You've got it
- a program library is pre-written, tested code that a program calls instead of writing its own
- benefits: faster and cheaper development, reliable routines, no expertise needed in that area, easier maintenance, teams work in parallel; drawbacks: may not fit, cannot be altered, dependency
- static: copied into the executable at compile time, self-contained but larger and rebuilt to update
- dynamic (DLL): a separate file loaded at run time, smaller, shared by many programs, updated once for all
Vous avez compris
- une bibliothèque de programmes est du code pré-écrit et testé qu'un programme appelle au lieu de l'écrire lui-même
- avantages : développement plus rapide et moins cher, routines fiables, pas d'expertise nécessaire dans ce domaine, maintenance facilitée, équipes travaillant en parallèle ; inconvénients : peut ne pas convenir, impossible à modifier, dépendance
- statique : copié dans l'exécutable au moment de la compilation, autonome mais plus volumineux et reconstruit pour une mise à jour
- dynamique (DLL) : un fichier séparé chargé au moment de l'exécution, plus léger, partagé par de nombreux programmes, mis à jour une fois pour tous