Biblioteka standardowa - Standard library

Standardowa biblioteka w programowaniu komputerowym jest biblioteka udostępnionych poprzez implementacje w języku programowania . Biblioteki te są konwencjonalnie opisane w specyfikacjach języka programowania ; jednak zawartość biblioteki powiązanej z językiem może być również określana (w części lub w całości) przez bardziej nieformalne praktyki społeczności danego języka.

Przegląd

Biblioteka standardowa języka jest często traktowana przez 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. Granica między językiem a jego bibliotekami różni się zatem w zależności od języka. Rzeczywiście, niektóre języki są zaprojektowane tak, że znaczeń pewnych konstrukcji składniowych nie można nawet opisać bez odwoływania się do biblioteki podstawowej. Na przykład, w Java , A ciągiem znaków jest zdefiniowana jako przykład klasy java.labg.String; podobnie w Smalltalk wyrażenie funkcji anonimowej ("blok") konstruuje wystąpienie 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 nie zadają sobie nawet trudu, aby powiedzieć, które części języka muszą być zaimplementowane jako konstrukcje językowe, a które muszą być zaimplementowane jako części biblioteki.

Zawartość

Standardowe biblioteki 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ępnianych przez język hosta standardowa biblioteka może zawierać:

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

Filozofie

Filozofie projektowania standardowych bibliotek są bardzo zróżnicowane. Na przykład Bjarne Stroustrup , projektant C++ , pisze:

Co powinno być w standardowej bibliotece C++? Jednym z ideałów jest, aby programista był w stanie znaleźć każdą interesującą, znaczącą i dość ogólną klasę, funkcję, szablon itp. w bibliotece. Jednak pytanie nie brzmi: „Co powinno być 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. Standardowa biblioteka to coś, co każdy realizator musi dostarczyć, aby każdy programista mógł na niej polegać.

Sugeruje to stosunkowo małą standardową bibliotekę, zawierającą tylko konstrukcje, których „każdy programista” może racjonalnie wymagać przy tworzeniu dużej kolekcji oprogramowania. Jest to filozofia stosowana w standardowych bibliotekach C i C++ .

Dla kontrastu, Guido van Rossum , projektant Pythona , przyjął znacznie bardziej inkluzywną wizję standardowej biblioteki Python, która oferuje nam łatwe do kodowania, zorientowane obiektowo, wysokopoziomowe środki językowe. A potem mamy wiele bibliotek Pythona do wykonywania zadań, takich jak matematyka, eksploracja danych, eksploracja danych i wizualizacja.; w tutorialu Pythona pisze:

Python ma filozofię "dołączone baterie". Najlepiej widać to po wyrafinowanych i solidnych możliwościach większych pakietów.

Van Rossum przechodzi do listy bibliotek do przetwarzania XML , XML-RPC , wiadomości e - mail i lokalizacji, udogodnień, które pomija standardowa biblioteka C++. Ta inna filozofia jest często spotykana w językach skryptowych (takich jak Python lub Ruby ) lub językach wykorzystujących maszynę wirtualną , takich jak Java lub języki .NET Framework . W C++ takie udogodnienia nie są częścią standardowej biblioteki, ale inne biblioteki, takie jak Boost .

Przykłady standardowych bibliotek

Bibliografia

  1. ^ Bjarne Stroustrup. Język programowania C++ . 3 wyd. Addison-Wesley, 1997
  2. ^ „12 najlepszych bibliotek Pythona na rok 2021 – blog Codersera” . 2021-02-16 . Pobrano 18.02.2021 .
  3. ^ Guido van Rossuma. [1] .