Standardní knihovna - Standard library

A standardní knihovna v programování je knihovna zpřístupněny napříč implementacemi a programovací jazyk. Tyto knihovny jsou běžně popsány v specifikace programovacího jazyka; obsah knihovny přidružené k jazyku však může být určen (částečně nebo celkově) neformálními praktikami jazykové komunity.

Přehled

Standardní knihovna jazyka je často považována za součást jazyka uživatelů, i když designéři to mohli považovat za samostatnou entitu. Mnoho jazykových specifikací definuje základní sadu, která musí být k dispozici ve všech implementace, kromě dalších částí, které mohou být volitelně implementovány. Hranice mezi jazykem a jeho knihovnami se proto liší jazyk od jazyka. Některé jazyky jsou skutečně navrženy tak, že významy určitých syntaktických konstruktů nelze ani popsat bez odkazu na základní knihovnu. Například v Jáva, a řetězec doslovný je definována jako instance třídy java.lang.String; podobně v Pokec, výraz anonymní funkce („blok“) vytvoří instanci třídy BlockContext třídy v knihovně. Naopak, Systém obsahuje několik koherentních podmnožin, které postačují ke konstrukci zbytku jazyka jako makra knihovny, a tak se návrháři jazyka ani neobtěžují říci, které části jazyka musí být implementovány jako jazykové konstrukce a které musí být implementovány jako součást knihovny .

Obsah

Standardní knihovny obvykle obsahují definice běžně používaných algoritmů, datových struktur a mechanismů pro vstup a výstup. V závislosti na konstrukcích zpřístupněných hostitelským jazykem může standardní knihovna obsahovat:

Většina standardních knihoven obsahuje definice alespoň následujících běžně používaných zařízení:

Filozofie

Filozofie standardního designu knihovny se velmi liší. Například, Bjarne Stroustrup, návrhář C ++, píše:

Co by mělo být ve standardní knihovně C ++? Jedním z ideálů je, aby programátor dokázal v knihovně najít každou zajímavou, významnou a přiměřeně obecnou třídu, funkci, šablonu atd. Otázka zde však není: „Co by mělo být nějaký knihovna? ​​"ale„ Co by mělo být v Standard knihovna? ​​"Odpověď„ Všechno! "je rozumné první přiblížení k odpovědi na první otázku, ale nikoli na druhou. Standardní knihovna je něco, co musí každý implementátor poskytnout, aby se na ni mohl každý programátor spolehnout.[1]

To naznačuje relativně malou standardní knihovnu, která obsahuje pouze konstrukce, které může „každý programátor“ rozumně vyžadovat při vytváření velké sbírky softwaru. To je filozofie, která se používá v C a C ++ standardní knihovny.

Naproti tomu Guido van Rossum, návrhář Krajta, přijal mnohem inkluzivnější vizi standardní knihovny; v tutoriálu pro Python píše:

Python má filozofii „včetně baterií“. To je nejlépe vidět na propracovaných a robustních schopnostech jeho větších balíčků.[2]

Van Rossum dále uvádí seznam knihoven ke zpracování XML, XML-RPC, e-mailové zprávy a lokalizace, zařízení, která standardní knihovna C ++ vynechává. Tato další filozofie se často nachází v skriptovací jazyky (jako v Krajta nebo Rubín ) nebo jazyky, které používají a virtuální stroj, jako Jáva nebo .NET Framework jazyky. V C ++ taková zařízení nejsou součástí standardní knihovny, ale místo toho jiných knihoven, jako je Zvýšit.

Příklady standardních knihoven

Reference

  1. ^ Bjarne Stroustrup. Programovací jazyk C ++. 3. vyd. Addison-Wesley, 1997
  2. ^ Guido van Rossum. [1].