Biblioteka standardowa
W programowaniu komputerowym biblioteka standardowa to biblioteka udostępniana we wszystkich implementacjach języka programowania . Biblioteki te są zwykle opisywane w specyfikacjach języka programowania ; jednak zawartość biblioteki powiązanej z językiem może być również określona (częściowo lub w całości) przez bardziej nieformalne praktyki społeczności językowej.
Przegląd
użytkowników jako część języka , chociaż projektanci mogli traktować ją jako oddzielną całość. Wiele specyfikacji językowych definiuje zestaw podstawowy, który musi być udostępniony we wszystkich implementacjach , oprócz innych części, które mogą być opcjonalnie zaimplementowane. Dlatego granica między językiem a jego bibliotekami różni się w zależności od języka. Rzeczywiście, niektóre języki są zaprojektowane w taki sposób, że znaczenia niektórych konstrukcji składniowych nie można nawet opisać bez odniesienia do biblioteki podstawowej. Na przykład w Javie literał łańcuchowy jest zdefiniowany jako instancja klasy java.lang.String; podobnie w Smalltalk anonimowe wyrażenie funkcyjne („blok”) konstruuje instancję klasy BlockContext biblioteki. I odwrotnie, Scheme zawiera wiele spójnych podzbiorów, które wystarczają do skonstruowania reszty języka jako makr bibliotecznych, więc projektanci języka nawet nie zadają sobie trudu, aby powiedzieć, które części języka muszą zostać zaimplementowane jako konstrukcje językowe, a które muszą zostać zaimplementowane jako części biblioteki.
Zawartość
Biblioteki standardowe zazwyczaj zawierają definicje powszechnie używanych algorytmów, struktur danych oraz mechanizmów wejścia i wyjścia. W zależności od konstrukcji udostępnionych przez język gospodarza standardowa biblioteka może zawierać:
- podprogramy
- Definicje makr
- Zmienne globalne
- Definicje klas
- Szablony
Większość bibliotek standardowych zawiera definicje co najmniej następujących powszechnie używanych funkcji:
- Algorytmy (takie jak algorytmy sortowania )
- Struktury danych (takie jak listy , drzewa i tabele skrótów )
- Interakcja z platformą hosta, w tym wywołania wejścia/wyjścia i systemu operacyjnego
filozofie
Filozofie projektowania bibliotek standardowych są bardzo zróżnicowane. Na przykład Bjarne Stroustrup , projektant C++ , pisze:
Co powinno znajdować się w standardowej bibliotece C++? Jednym z ideałów jest to, aby programista mógł znaleźć w bibliotece każdą interesującą, znaczącą i w miarę ogólną klasę, funkcję, szablon itp. Jednak pytanie tutaj nie brzmi: „Co powinno znajdować się w jakiejś bibliotece?” ale „Co powinno być w standardowej bibliotece?” Odpowiedź „Wszystko!” jest rozsądnym pierwszym przybliżeniem odpowiedzi na pierwsze pytanie, ale nie na drugie. Biblioteka standardowa to coś, co każdy implementator musi dostarczyć, aby każdy programista mógł na niej polegać.
Sugeruje to stosunkowo małą bibliotekę standardową, zawierającą tylko konstrukcje, których „każdy programista” może rozsądnie potrzebować podczas tworzenia dużej kolekcji oprogramowania. Jest to filozofia stosowana w C i C++ .
Natomiast Guido van Rossum , projektant Pythona , przyjął znacznie bardziej inkluzywną wizję standardowej biblioteki Python oferuje nam łatwe do kodowania, zorientowane obiektowo środki językowe wysokiego poziomu. W samouczku Pythona pisze:
Python ma filozofię „baterie w zestawie”. Najlepiej widać to po wyrafinowanych i solidnych możliwościach większych pakietów.
Van Rossum wymienia biblioteki do przetwarzania XML , XML-RPC , wiadomości e-mail i lokalizacji, funkcje, które standardowa biblioteka C++ pomija. Ta inna filozofia jest często spotykana w językach skryptowych (takich jak Python lub Ruby ) lub językach korzystających z maszyny wirtualnej , takich jak Java lub języki .NET Framework . W C++ takie udogodnienia nie są częścią standardowej biblioteki, lecz inne biblioteki, takie jak Boost .
Przykłady bibliotek standardowych
- Standardowa biblioteka C dla języka programowania C
- Biblioteka standardowa C++ dla języka programowania C++
- Framework Class Library (FCL) dla .NET Framework
- Java Class Library (JCL) dla języka programowania Java i platformy Java
- Standardowa biblioteka Factor dla języka programowania Factor
- Standardowa biblioteka Ruby dla języka programowania Ruby
- Standardowa biblioteka Pythona dla języka programowania Python
- Biblioteki standardowe (CLI)
- Bibliografia _ Język programowania C++ . wyd. 3. Addison-Wesley, 1997
- Bibliografia _ [1] .