Libreria di runtime
Una libreria di runtime (o libreria runtime) è una libreria software usata da un compilatore per implementare delle funzioni integrate all'interno di un linguaggio di programmazione durante il runtime (esecuzione) di un programma.
Una libreria di runtime include spesso funzioni per l'Input/output o per la gestione della memoria.
Quando il codice sorgente di un programma viene tradotto nel rispettivo linguaggio finale da un compilatore, se ogni comando o funzione del sorgente fosse tradotto completamente ogni volta nel corrispondente codice programma questo subirebbe un aumento vertiginoso delle proprie dimensioni. Il compilatore utilizza invece delle funzioni ausiliarie specifiche che sono per la maggior parte inaccessibili ai programmatori che sviluppano le applicazioni e che sono implementate nella libreria di runtime. A seconda della struttura del compilatore, la libreria di runtime spesso può contenere anche la libreria standard del rispettivo compilatore oppure essere contenuta in essa.
Inoltre alcune funzioni che possono essere eseguite (o sono più efficienti o accurate) solo durante l'esecuzione vengono implementate nella libreria di runtime, come ad esempio alcuni errori logici, il controllo dei puntatori dei vettori, il controllo dei tipi di dato dinamici, la gestione delle eccezioni e le funzionalità di debug. Per questo motivo molti errori di programmazione non vengono scoperti fintanto che il programma non viene provato in un ambiente "vero" con dati reali, nonostante la possibile presenza di controlli sofisticati in fase di compilazione ed i test di pre-rilascio. In questo caso l'utente finale può imbattersi in un messaggio di "errore di runtime" (errore di esecuzione).
Di solito una libreria di runtime realizza molte funzioni accedendo al sistema operativo: molti linguaggi di programmazione hanno funzioni integrate che non devono necessariamente essere realizzate nel compilatore ma possono essere implementate nella libreria di runtime. Perciò il confine fra libreria di runtime e libreria standard è dato dal progettista del compilatore. Pertanto una libreria di runtime è sempre specifica per un determinato compilatore ed una determinata piattaforma.
Il concetto di libreria di runtime non deve essere confuso con quello di un'ordinaria libreria di programma come quella creata da un programmatore per un'applicazione o fornita da terzi oppure con quello di libreria dinamica, vale a dire una libreria di programma linkata durante l'esecuzione. Ad esempio il linguaggio C richiede una libreria di runtime molto esigua ma definisce una libreria standard molto grande, chiamata la libreria standard del C, che ogni implementazione deve fornire.