Nella programmazione per computer, una libreria standard è una serie di funzioni, costanti e altre definizioni di linguaggio incluse come parte del pacchetto del compilatore principale. La libreria standard fornisce a un programmatore la capacità di base di creare programmi semplici e manipolare dati di base. Fornisce inoltre la possibilità di interagire in qualche modo con il sistema operativo host in modo che l’elaborazione delle informazioni non diventi un compito banale. Tutte le implementazioni di un determinato compilatore di linguaggio includono la libreria standard ed è generalmente compatibile con le versioni precedenti della libreria, quindi la funzionalità del linguaggio di base viene preservata man mano che si evolve nel tempo.
Una libreria, in senso lato, è una raccolta di procedure, funzioni, classi o altri elementi di un programma per computer a disposizione di un programmatore. Questi elementi sono generalmente raggruppati in categorie che ne definiscono la funzionalità, come input, output e gestione dei processi. Alcune librerie si basano su altre librerie per funzionare correttamente, un concetto chiamato dipendenza. Le variabili importanti, come il valore massimo di un tipo di dati intero o la definizione numerica di un carattere null, possono essere archiviate in una libreria. Di solito sono anche pezzi di codice per computer già compilati, che impediscono modifiche dannose e proteggono il codice di programmazione proprietario.
Una libreria standard si sforza di includere tutte le funzionalità di base e necessarie che un’ampia gamma di programmi richiederà per essere eseguita in un modo o nell’altro. Questo deve essere bilanciato con l’inclusione di troppe librerie. Una grande libreria standard significa che, in alcune lingue, la dimensione della distribuzione di un programma completato potrebbe essere incredibilmente grande e gonfia di librerie che non vengono mai utilizzate. Includere troppi file in una libreria standard può anche portare a problemi con lo sviluppo del linguaggio, perché le funzionalità che vengono utilizzate di rado devono essere aggiornate ad ogni cambio di lingua o compilatore, aumentando la quantità di lavoro necessaria per una nuova versione.
Al contrario, una libreria standard che ha poche funzionalità può portare ogni programmatore a dover installare librerie esterne personalizzate e includerle in modo specifico nelle versioni del programma. Ciò può portare a un tipo di manutenzione secondaria, guidata dalla comunità, di uno standard che non è controllata dal team di sviluppo del linguaggio principale. Alcuni linguaggi si adattano a tali situazioni includendo librerie di uso comune nel set di standard quando la comunità ha chiarito la necessità.
Linguaggi diversi hanno filosofie di progettazione diverse su ciò che dovrebbe essere nella libreria standard. Inoltre, i meccanismi alla base del modo in cui il compilatore crea un programma eseguibile possono anche determinare i parametri per la libreria. Le lingue interpretate tendono ad avere una collezione più ampia di librerie nel loro set standard, mentre le lingue di basso livello spesso ne hanno pochissime.