Standardna biblioteka
Standardna biblioteka programskog jezika je biblioteka koja je dogovorno dostupna u svakoj implementaciji jezika. U nekim je slučajevima standardna biblioteka izravno opisana u specifikaciji programskog jezika, dok je u drugim slučajevima sadržaj standardne biblioteke određen neformalnijim socijalnim praksama zajednice.
Ovisno o konstruktima dostupnim u jeziku domaćinu, standardna biblioteka može uključivati:
Većina standardnih biblioteka uključuje definicije barem sljedećih uobičajeno korištenih konstrukata:
- algoritama (poput npr. algoritama sortiranja)
- podatkovnih struktura kao što su lista, stabla te tablice raspršenog adresiranja).
- interakciju s udomljujućom platformom, uključujući ulaz/izlaz te sistemske pozive operacijskog sustava
Filozofije dizajna standardne biblioteke naširoko variraju. Na primjer, Bjarne Stroustrup, dizajner programskog jezika C++, piše:
- Što bi trebalo biti u standardnoj C++ biblioteci? Jedan od ideala bi za programera bio da u biblioteci može naći svaku zanimljivu, važnu i razumno općenitu klasu, funkciju, predložak itd. U drugu ruku, pitanje ovdje nije "Što bi trebalo biti u nekoj biblioteci?", već "Što bi trebalo biti u standardnoj biblioteci?". Odgovor "Sve!" je razumna prva aproksimacija odgovora na prvo pitanje, ali ne i na drugo. Standardna biblioteka je nešto što svaka implementacija mora učiniti dostupnim tako da bi se programer na nju mogao osloniti.[1]
Ovo vodi ka relativno maloj standardnoj biblioteci, koja sadrži samo konstrukte koje "svaki programer" može ustrebati prilikom gradnje šireg spektra softvera.
S druge strane, Guido van Rossum, dizajner programskog jezika Python, je prihvatio nešto uključiviju verziju standardne biblioteke; u Python tutorialu on piše:
- Python ima filozofiju "baterije uključene". Ovo se najbolje vidi kroz sofisticirane i robusne mogućnosti većih paketa.[2]
Van Rossum nastavlja nabrajati standardne biblioteke za XML, XML-RPC, poruke elektroničke pošte, lokalizaciju te ostale komponente koje C++ stanardnoj biblioteci nedostaju.
- ↑ Bjarne Stroustrup. The C++ Programming Language. 3rd Ed. Addison-Wesley, 1997
- ↑ Guido van Rossum. Python Tutorial.