Biblioteca (informática)


En informática , una biblioteca es una colección de recursos no volátiles utilizados por programas informáticos , a menudo para el desarrollo de software . Estos pueden incluir datos de configuración, documentación, datos de ayuda, plantillas de mensajes, código preescrito y subrutinas , clases , valores o especificaciones de tipo . En el OS / 360 de IBM y sus sucesores , se denominan conjuntos de datos particionados . [1]

Una biblioteca es también una colección de implementaciones de comportamiento, escritas en términos de un lenguaje, que tiene una interfaz bien definida mediante la cual se invoca el comportamiento. Por ejemplo, las personas que quieran escribir un programa de nivel superior pueden usar una biblioteca para realizar llamadas al sistema en lugar de implementar esas llamadas al sistema una y otra vez. Además, el comportamiento se proporciona para su reutilización por varios programas independientes. Un programa invoca el comportamiento proporcionado por la biblioteca a través de un mecanismo del lenguaje. Por ejemplo, en un lenguaje imperativo simplecomo C, el comportamiento en una biblioteca se invoca mediante la llamada a función normal de C. Lo que distingue la llamada a una función de biblioteca, frente a otra función en el mismo programa, es la forma en que el código está organizado en el sistema. [2]

El código de la biblioteca está organizado de tal manera que puede ser utilizado por varios programas que no tienen conexión entre sí, mientras que el código que es parte de un programa está organizado para ser utilizado solo dentro de ese programa. Esta distinción puede ganar una noción jerárquica cuando un programa crece, como un programa de varios millones de líneas. En ese caso, puede haber bibliotecas internas que sean reutilizadas por sub-partes independientes del programa grande. La característica distintiva es que una biblioteca está organizada con el propósito de ser reutilizada por programas o subprogramas independientes, y el usuario solo necesita conocer la interfaz y no los detalles internos de la biblioteca.

El valor de una biblioteca radica en la reutilización de elementos de programa estandarizados. Cuando un programa invoca una biblioteca, obtiene el comportamiento implementado dentro de esa biblioteca sin tener que implementar ese comportamiento por sí mismo. Las bibliotecas fomentan el intercambio de código de forma modular y facilitan la distribución del código.

El comportamiento implementado por una biblioteca se puede conectar al programa que invoca en diferentes fases del ciclo de vida del programa . Si se accede al código de la biblioteca durante la compilación del programa de invocación, la biblioteca se denomina biblioteca estática . [3] Una alternativa es construir el ejecutable del programa invocador y distribuirlo, independientemente de la implementación de la biblioteca. El comportamiento de la biblioteca se conecta después de que se haya invocado el ejecutable para su ejecución, ya sea como parte del proceso de inicio de la ejecución o en medio de la ejecución. En este caso, la biblioteca se denomina biblioteca dinámica (se carga en tiempo de ejecución). Una biblioteca dinámica puede ser cargado y ligado al preparar un programa para su ejecución, por el enlazador . Alternativamente, en medio de la ejecución, una aplicación puede solicitar explícitamente que se cargue un módulo .

La mayoría de los lenguajes compilados tienen una biblioteca estándar , aunque los programadores también pueden crear sus propias bibliotecas personalizadas. La mayoría de los sistemas de software modernos proporcionan bibliotecas que implementan la mayoría de los servicios del sistema. Estas bibliotecas han organizado los servicios que requiere una aplicación moderna. Como tal, la mayor parte del código utilizado por las aplicaciones modernas se proporciona en estas bibliotecas del sistema.


Ilustración de una aplicación que usa libvorbisfile para reproducir un archivo Ogg Vorbis
Una mujer que trabaja junto a un archivador que contiene la biblioteca de subrutinas en bobinas de cinta perforada para la computadora EDSAC.