En programación de computadoras, una biblioteca estándar es una serie de funciones, constantes y otras definiciones de lenguaje que se incluyen como parte del paquete del compilador principal. La biblioteca estándar proporciona al programador la capacidad básica para crear programas simples y manipular datos básicos. También proporciona la capacidad de interactuar de alguna manera con el sistema operativo del host para que el procesamiento de la información no se convierta en una tarea trivial. Todas las implementaciones de un compilador de lenguaje dado incluyen la biblioteca estándar, y generalmente es compatible con versiones anteriores de la biblioteca, por lo que la funcionalidad básica del lenguaje se conserva a medida que evoluciona con el tiempo.
Una biblioteca, en un sentido amplio, es una colección de procedimientos, funciones, clases u otros elementos de un programa de computadora que están disponibles para un programador. Estos elementos generalmente se agrupan en categorías que definen su funcionalidad, como entrada, salida y manejo de procesos. Algunas bibliotecas dependen de otras bibliotecas para funcionar correctamente, un concepto llamado dependencia. Las variables importantes, como el valor máximo de un tipo de datos entero o la definición numérica de un carácter nulo, se pueden almacenar en una biblioteca. Por lo general, también son piezas de código de computadora ya compiladas, lo que evita modificaciones dañinas y protege el código de programación propietario.
Una biblioteca estándar se esfuerza por incluir todas las características básicas y necesarias que requerirá una amplia gama de programas para ejecutarse de una forma u otra. Esto debe equilibrarse con la inclusión de demasiadas bibliotecas. Una biblioteca estándar grande significa que, en algunos idiomas, el tamaño de distribución de un programa completo podría ser increíblemente grande y estar repleto de bibliotecas que nunca se utilizan. Incluir demasiados archivos en una biblioteca estándar también puede generar problemas con el desarrollo del lenguaje, porque las características que se utilizan con poca frecuencia deben actualizarse con cada cambio de lenguaje o compilador, lo que aumenta la cantidad de trabajo requerido para una nueva versión.
Por el contrario, una biblioteca estándar que tiene muy poca funcionalidad puede llevar a que cada programador tenga que instalar bibliotecas externas de manera personalizada e incluirlas específicamente en las versiones del programa. Esto puede conducir a un tipo de mantenimiento secundario impulsado por la comunidad de un estándar que no está controlado por el equipo de desarrollo del idioma principal. Algunos lenguajes se adaptan a tales situaciones al incluir bibliotecas de uso común en el conjunto de estándares cuando la comunidad ha dejado clara la necesidad.
Los diferentes lenguajes tienen diferentes filosofías de diseño sobre lo que debería estar en la biblioteca estándar. Además, la mecánica detrás de cómo el compilador crea un programa ejecutable también puede determinar los parámetros de la biblioteca. Los lenguajes interpretados tienden a tener una colección más grande de bibliotecas en su conjunto estándar, mientras que los lenguajes de bajo nivel suelen tener muy pocas.