Standardní knihovna - Standard library

Standardní knihovna v programování je knihovna zpřístupněna přes implementací v programovacím jazyku . Tyto knihovny jsou běžně popsány ve specifikacích programovacího jazyka ; obsah knihovny přidružené k jazyku však může být také určen (částečně nebo zcela) neformálnějšími postupy komunity jazyků.

Přehled

Standardní knihovna jazyka je jeho uživateli často považována za součást jazyka , ačkoli návrháři jej mohli považovat za samostatnou entitu. Mnoho jazykových specifikací definuje základní sadu, která musí být k dispozici ve všech implementacích , 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 konstrukcí nelze ani popsat bez odkazu na základní knihovnu. Například v Javě je řetězcový literál definován jako instance třídy java.lang.String; podobně v Smalltalku výraz anonymní funkce („blok“) vytvoří instanci knihovny BlockContext třídy. Naopak Scheme obsahuje více koherentních podmnožin, které postačují ke konstrukci zbytku jazyka jako knihovních maker, a tak se jazykoví designéři ani neobtěžují říci, které části jazyka musí být implementovány jako jazykové konstrukce a které musí být implementovány jako části. z knihovny.

Obsah

Standardní knihovny obvykle obsahují definice pro běžně používané algoritmy, datové struktury a mechanismy 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ň pro následující běžně používaná 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 najít v knihovně každou zajímavou, významnou a přiměřeně obecnou třídu, funkci, šablonu atd. Otázkou však není: „Co by mělo být v nějaké knihovně?“ ale „Co by mělo být ve standardní knihovně?“ Odpověď „Všechno!“ je rozumná první aproximace odpovědi na první otázku, ale ne na druhou. Standardní knihovna je něco, co musí každý implementátor dodat, aby se na ni mohl každý programátor spolehnout.

To naznačuje relativně malou standardní knihovnu, obsahující pouze konstrukty, které „každý programátor“ může rozumně vyžadovat při budování velké kolekce softwaru. Toto je filozofie, která se používá ve standardních knihovnách C a C ++ .

Naproti tomu Guido van Rossum , designér Pythonu , přijal mnohem inkluzivnější vizi standardní knihovny, kterou nám Python nabízí snadno kódovatelné, objektově orientované, jazykové prostředky na vysoké úrovni. A pak máme mnoho pythonových knihoven, které dělají úkoly jako matematika, dolování dat, průzkum dat a vizualizace .; v tutoriálu k Pythonu píše:

Python má filozofii „baterie součástí“. Nejlépe je to vidět na propracovaných a robustních schopnostech jeho větších balíčků.

Van Rossum dále uvádí seznam knihoven pro zpracování XML , XML-RPC , e - mailových zpráv a lokalizace, zařízení, která standardní knihovna C ++ vynechává. Tato další filozofie se často vyskytuje ve skriptovacích jazycích (jako v Pythonu nebo Ruby ) nebo v jazycích, které používají virtuální počítač , jako je Java nebo .NET Framework . V C ++ taková zařízení nejsou součástí standardní knihovny, ale místo toho jiné knihovny, například Boost .

Příklady standardních knihoven

Reference

  1. ^ Bjarne Stroustrup. Programovací jazyk C ++ . 3. vydání Addison-Wesley, 1997
  2. ^ „Top 12 knihoven Pythonu pro blog Codersera 2021- Codersera“ . 2021-02-16 . Citováno 2021-02-18 .
  3. ^ Guido van Rossum. [1] .