En programación informática , una biblioteca de tiempo de ejecución es un conjunto de rutinas de bajo nivel utilizadas por un compilador para invocar algunos de los comportamientos de un entorno de tiempo de ejecución , insertando llamadas a la biblioteca de tiempo de ejecución en binarios ejecutables compilados. El entorno de tiempo de ejecución implementa el modelo de ejecución , funciones integradas y otros comportamientos fundamentales de un lenguaje de programación . [1] Durante la ejecución ( tiempo de ejecución ) de ese programa informático , la ejecución de esas llamadas a la biblioteca de tiempo de ejecución provoca la comunicación entre el binario ejecutable y el entorno de tiempo de ejecución. Una biblioteca de tiempo de ejecución a menudo incluye funciones integradas para la gestión de memoria o el manejo de excepciones . [2] Por lo tanto, una biblioteca de tiempo de ejecución siempre es específica de la plataforma y el compilador.
La biblioteca de tiempo de ejecución puede implementar una parte del comportamiento del entorno de ejecución, pero si uno lee el código de las llamadas disponibles, normalmente son solo envoltorios delgados que simplemente empaquetan información y la envían al entorno de ejecución o al sistema operativo. Sin embargo, a veces el término biblioteca de tiempo de ejecución pretende incluir el código del propio entorno de ejecución, aunque no se pueda acceder directamente a gran parte de ese código a través de una llamada a la biblioteca.
Por ejemplo, algunas características del lenguaje que se pueden realizar solo (o son más eficientes o precisas) en tiempo de ejecución se implementan en el entorno de ejecución y se pueden invocar a través de la API de la biblioteca de tiempo de ejecución, por ejemplo, algunos errores lógicos, verificación de límites de matriz , verificación de tipos dinámicos, manejo de excepciones y, posiblemente, funcionalidad de depuración. Por este motivo, algunos errores de programación no se descubren hasta que el programa se prueba en un entorno "en vivo" con datos reales, a pesar de las comprobaciones y pruebas sofisticadas en tiempo de compilación realizadas durante el desarrollo.
Como otro ejemplo, una biblioteca de tiempo de ejecución puede contener código de operaciones de bajo nivel integradas demasiado complicadas para su incorporación en línea durante la compilación, como implementaciones de operaciones aritméticas no admitidas directamente por la CPU de destino, o varias operaciones y directivas específicas del compilador. [2] [3]
El concepto de biblioteca de tiempo de ejecución no debe confundirse con una biblioteca de programas ordinaria como la creada por un programador de aplicaciones o entregada por un tercero, ni con una biblioteca dinámica , es decir, una biblioteca de programas vinculada en tiempo de ejecución. Por ejemplo, el lenguaje de programación C requiere solo una biblioteca de tiempo de ejecución mínima (comúnmente llamada crt0
), pero define una gran biblioteca estándar (llamada biblioteca estándar de C ) que debe ser proporcionada por cada implementación. [1]