Co je standardní knihovna?
V počítačovém programování je standardní knihovna řadou funkcí, konstant a dalších definic jazyka, které jsou součástí balíčku kompilátoru jádra. Standardní knihovna poskytuje programátorům základní schopnost vytvářet jednoduché programy a manipulovat se základními daty. Poskytuje také možnost nějak interagovat s hostitelským operačním systémem, takže zpracování informací se nestane triviální úlohou. Všechny implementace daného kompilátoru jazyků zahrnují standardní knihovnu a je obecně sestupně kompatibilní s předchozími verzemi knihovny, takže základní jazyková funkčnost je zachována, jak se v průběhu času vyvíjí.
Knihovna v širokém smyslu je soubor procedur, funkcí, tříd nebo jiných prvků počítačového programu, které jsou k dispozici pro programátora. Tyto prvky jsou obvykle seskupeny do kategorií, které definují jejich funkčnost, jako je vstup, výstup a zpracování procesů. Některé knihovny se spoléhají na to, že jiné knihovny fungují správně, což se nazývá závislost. Důležité proměnné, jako je maximální hodnota celočíselného datového typu nebo numerická definice nulového znaku, lze uložit do knihovny. Obvykle jsou také již kompilovány kousky počítačového kódu, což zabraňuje škodlivým úpravám a chrání vlastní programovací kód.
Standardní knihovna se snaží zahrnout všechny základní a nezbytné funkce, které bude spousta programů vyžadovat, aby běžela tak či onak. To musí být vyváženo proti příliš velkému počtu knihoven. Velká standardní knihovna znamená, že v některých jazycích může být distribuční velikost dokončeného programu neuvěřitelně velká a nafouknutá knihovnami, které se nikdy nepoužívají. Zahrnutí příliš velkého množství souborů do standardní knihovny může také vést k problémům s vývojem jazyka, protože funkce, které se používají jen zřídka, musí být aktualizovány s každou změnou jazyka nebo kompilátoru, čímž se zvyšuje množství práce potřebné pro nové vydání.
Naopak standardní knihovna, která má příliš malou funkčnost, může vést k tomu, že každý programátor bude muset instalovat externí knihovny na míru a zahrnout je konkrétně do vydání programu. To může vést k typu sekundárního, komunitně řízeného udržování standardu, který není řízen týmem pro vývoj primárního jazyka. Některé jazyky se přizpůsobí těmto situacím zahrnutím běžně používaných knihoven do standardního souboru, když komunita objasní potřebu.
Různé jazyky mají různé filozofie designu o tom, co by mělo být ve standardní knihovně. Kromě toho mohou mechanismy, za které kompilátor vytváří spustitelný program, také určit parametry pro knihovnu. Interpretované jazyky mají obvykle ve své standardní sadě větší sbírku knihoven, zatímco jazyky nízké úrovně mají často jen velmi málo.