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ć:
- Podprogramy
- Definicje makr
- Zmienne globalne
- Definicje klas
- Szablony
Większość standardowych bibliotek zawiera definicje co najmniej następujących powszechnie używanych udogodnień:
- Algorytmy (takie jak algorytmy sortowania )
- Struktury danych (takie jak listy , drzewa i tablice mieszające )
- Interakcja z platformą hosta, w tym wejścia/wyjścia i wywołania systemu operacyjnego
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
- Biblioteka standardowa C , dla języka programowania C
- Biblioteka standardowa C++ , dla języka programowania C++
- Biblioteka klas Framework (FCL) dla .NET Framework
- Biblioteka klas Java (JCL) dla języka programowania Java i platformy Java
- Biblioteka standardowa Factor , dla języka programowania Factor
- Ruby biblioteki standardowej , dla języka programowania Ruby
- Biblioteka standardowa Python , dla języka programowania Python
- Biblioteki standardowe (CLI)
Bibliografia
- ^ Bjarne Stroustrup. Język programowania C++ . 3 wyd. Addison-Wesley, 1997
- ^ „12 najlepszych bibliotek Pythona na rok 2021 – blog Codersera” . 2021-02-16 . Pobrano 18.02.2021 .
- ^ Guido van Rossuma. [1] .