Bibliotheek (informatica)

verzameling code die door programma's kunnen worden gebruikt

In de informatica is een bibliotheek (Engels: library) een verzameling code (functies/routines) die door programma's kan worden gebruikt. Het voordeel hiervan is dat programmeurs geen (nieuwe) code hoeven te schrijven voor bepaalde algemene bewerkingen. Ze kunnen simpelweg de functies aanroepen die zich in de bibliotheek bevinden.

Bibliotheken bestaan voor vele doeleinden. Voor de meeste programmeertalen bestaat een standaardbibliotheek met zeer algemene routines, zoals invoer/uitvoer, veel voorkomende wiskundige operaties, datastructuren en het werken met tekst.

Vaak is een bibliotheek bruikbaar voor programma's die in één bepaalde taal geschreven zijn, maar het komt ook voor dat er meerdere interfaces beschikbaar zijn voor verschillende talen.

Om verscheidene bibliotheken met elkaar te kunnen laten samenwerken, is het soms nodig om lijmcode te schrijven; deze code herschrijft bijvoorbeeld de uitvoer van de ene bibliotheek als invoer voor de andere bibliotheek.

Dynamische en statische bibliotheken

bewerken

Bibliotheken voor gecompileerde programmeertalen kunnen op twee manieren gebruikt worden: dynamisch of statisch gekoppeld.

In het dynamische geval bestaat de bibliotheek als een apart object op schijf, en wordt er enkel een koppeling gelegd vanuit het programma naar de bibliotheek. Het programma bevat geen code van de bibliotheek zelf en het programma is dus van de bibliotheek afhankelijk, zonder zou het niet kunnen werken. Dit heeft als voordeel dat meerdere programma's dezelfde gecompileerde code kunnen hergebruiken waardoor ruimte wordt bespaard en het makkelijk is een fout in de code van de bibliotheek op te lossen door alleen de bibliotheek te vervangen. Een dynamische bestandsbibliotheek (dynamic of shared library) in Windows en in OS/2 is te herkennen aan de extensie .dll (dynamically linked library), in Linux en de meeste varianten van Unix aan de extensie .so (shared object).

De tweede manier is om een bibliotheek statisch te linken aan een programma. Dat wil zeggen dat de code van de bibliotheek tijdens de compilatie wordt toegevoegd aan het programma. Dat betekent dat het programma groter wordt, maar heeft als voordeel dat het niet afhankelijk is van de bibliotheek.