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ć:

Większość bibliotek standardowych zawiera definicje co najmniej następujących powszechnie używanych funkcji:

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

  1. Bibliografia _ Język programowania C++ . wyd. 3. Addison-Wesley, 1997
  2. Bibliografia _ [1] .