У програмуванні стандартна бібліотека (англ. standard library) — це бібліотека, що доступна в усіх реалізаціях даної мови програмування. Зміст такої бібліотеки зазвичай описано в специфікації мови, однак також він може частково або повністю визначатися більш неформальними практиками програмістів, що користуються нею.
Зазвичай користувачі мови програмування вважають стандартну бібліотеку її частиною, хоча можливо, що розробники ставилися до неї як до окремого об'єкту. В багатьох мовах специфікацією визначається базовий функціонал, який повинен бути присутній в усіх реалізаціях, в доповненні до інших можливостей, реалізація яких необов'язкова. Таким чином, межа між мовою програмування та її бібліотеками індивідуальна для кожної мови. Дійсно — деякі мови розроблено таким чином, що значення певних синтаксичних конструкцій навіть не може бути описано без посилань до стандартної бібліотеки. Наприклад, в Java [en] визначається як екземпляр класу java.lang.String; аналогічно в Smalltalk анонімний функціональний вираз («блок») створює BlockContext — екземпляр класу стандартної бібліотеки. З іншого боку, Scheme містить декілька когерентних підмножин, яких досить для того, щоб побудувати решту мови як макрос бібліотеки, і тому розробникам мови навіть не потрібно вказувати, які частини мови повинно бути реалізовано в вигляді мовних конструкцій, а які — у вигляді складу стандартної бібліотеки.
Вміст
Стандартні бібліотеки, як правило, включають в себе визначення для часто використовуваних алгоритмів, структур даних та механізмів введення-виведення. Залежно від обмежень конкретної мови стандартна бібліотека може складатися з:
Більшість стандартних бібліотек включають в себе визначення принаймні таких найчастіше використовуваних інструментів як:
- Алгоритми (такі як алгоритми сортування)
- Структури даних (наприклад, списки, дерева, хеш-таблиці тощо)
- Взаємодія з відповідною платформою (введення-виведення, системні виклики та ін.)
Основні принципи
Погляди на основні принципи проектування стандартної бібліотеки дуже різняться. Наприклад, Б'ярн Страуструп, розробник , пише:
Що повинно бути в стандартній бібліотеці C++? Одним ідеалом була б змога для програміста знайти у ній будь-який цікавий, необхідний та у певній мірі загальний клас, функцію, шаблон тощо. Проте питання було не «Що повинно бути в якійсь бібліотеці?», а «Що повинно бути в стандартній бібліотеці?» Відповідь «Усе!» є розумним першим наближенням відповіді на перше питання, але не на останнє. Стандартна бібліотека — це щось, що повинен забезпечувати кожен розробник кожної реалізації, на що міг би розраховувати кожен програміст. |
Це передбачає відносно невелику стандартну бібліотеку, яка містить тільки конструкції, які «кожен програміст» міг би розумно вимагати при розробці складної програми. Цей підхід використовується в стандартних бібліотеках C та .
На противагу цьому, Гвідо ван Россум, розробник Python, має набагато ширше бачення стандартної бібліотеки; в навчальному посібнику з Python він пише:
Python дотримується принципу «разом з батарейками». Це найкраще помітно в складних та стійких можливостях його великих пакетів. |
Ван Россум перераховує бібліотеки для обробки XML, XML-RPC, роботи з електронною поштою та локалізації — засоби, які стандартна бібліотека C++ не включає. Цей підхід часто зустрічається в скриптових мовах (таких як в Python або Ruby) або в мовах, які використовують віртуальну машину (наприклад, Java або .NET Framework). У C++ такі інструменти не є частиною стандартної бібліотеки, але замість того присутні в інших бібліотеках (таких як Boost).
Приклади стандартних бібліотек
- Стандартна бібліотека мови Сі
- [en]
- [en]
- Factor standard library
- [en]
Примітки
- Bjarne Stroustrup. The C++ Programming Language. 3rd Ed. Addison-Wesley, 1997
- Guido van Rossum. [1].
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U programuvanni standartna biblioteka angl standard library ce biblioteka sho dostupna v usih realizaciyah danoyi movi programuvannya Zmist takoyi biblioteki zazvichaj opisano v specifikaciyi movi odnak takozh vin mozhe chastkovo abo povnistyu viznachatisya bilsh neformalnimi praktikami programistiv sho koristuyutsya neyu Zazvichaj koristuvachi movi programuvannya vvazhayut standartnu biblioteku yiyi chastinoyu hocha mozhlivo sho rozrobniki stavilisya do neyi yak do okremogo ob yektu V bagatoh movah specifikaciyeyu viznachayetsya bazovij funkcional yakij povinen buti prisutnij v usih realizaciyah v dopovnenni do inshih mozhlivostej realizaciya yakih neobov yazkova Takim chinom mezha mizh movoyu programuvannya ta yiyi bibliotekami individualna dlya kozhnoyi movi Dijsno deyaki movi rozrobleno takim chinom sho znachennya pevnih sintaksichnih konstrukcij navit ne mozhe buti opisano bez posilan do standartnoyi biblioteki Napriklad v Java en viznachayetsya yak ekzemplyar klasu java lang String analogichno v Smalltalk anonimnij funkcionalnij viraz blok stvoryuye BlockContext ekzemplyar klasu standartnoyi biblioteki Z inshogo boku Scheme mistit dekilka kogerentnih pidmnozhin yakih dosit dlya togo shob pobuduvati reshtu movi yak makros biblioteki i tomu rozrobnikam movi navit ne potribno vkazuvati yaki chastini movi povinno buti realizovano v viglyadi movnih konstrukcij a yaki u viglyadi skladu standartnoyi biblioteki VmistStandartni biblioteki yak pravilo vklyuchayut v sebe viznachennya dlya chasto vikoristovuvanih algoritmiv struktur danih ta mehanizmiv vvedennya vivedennya Zalezhno vid obmezhen konkretnoyi movi standartna biblioteka mozhe skladatisya z Pidprogram Makrosiv Globalnih zminnih Klasiv Shabloniv Bilshist standartnih bibliotek vklyuchayut v sebe viznachennya prinajmni takih najchastishe vikoristovuvanih instrumentiv yak Algoritmi taki yak algoritmi sortuvannya Strukturi danih napriklad spiski dereva hesh tablici tosho Vzayemodiya z vidpovidnoyu platformoyu vvedennya vivedennya sistemni vikliki ta in Osnovni principiPoglyadi na osnovni principi proektuvannya standartnoyi biblioteki duzhe riznyatsya Napriklad B yarn Straustrup rozrobnik C pishe Sho povinno buti v standartnij biblioteci C Odnim idealom bula b zmoga dlya programista znajti u nij bud yakij cikavij neobhidnij ta u pevnij miri zagalnij klas funkciyu shablon tosho Prote pitannya bulo ne Sho povinno buti v yakijs biblioteci a Sho povinno buti v standartnij biblioteci Vidpovid Use ye rozumnim pershim nablizhennyam vidpovidi na pershe pitannya ale ne na ostannye Standartna biblioteka ce shos sho povinen zabezpechuvati kozhen rozrobnik kozhnoyi realizaciyi na sho mig bi rozrahovuvati kozhen programist Ce peredbachaye vidnosno neveliku standartnu biblioteku yaka mistit tilki konstrukciyi yaki kozhen programist mig bi rozumno vimagati pri rozrobci skladnoyi programi Cej pidhid vikoristovuyetsya v standartnih bibliotekah C ta C Na protivagu comu Gvido van Rossum rozrobnik Python maye nabagato shirshe bachennya standartnoyi biblioteki v navchalnomu posibniku z Python vin pishe Python dotrimuyetsya principu razom z batarejkami Ce najkrashe pomitno v skladnih ta stijkih mozhlivostyah jogo velikih paketiv Van Rossum pererahovuye biblioteki dlya obrobki XML XML RPC roboti z elektronnoyu poshtoyu ta lokalizaciyi zasobi yaki standartna biblioteka C ne vklyuchaye Cej pidhid chasto zustrichayetsya v skriptovih movah takih yak v Python abo Ruby abo v movah yaki vikoristovuyut virtualnu mashinu napriklad Java abo NET Framework U C taki instrumenti ne ye chastinoyu standartnoyi biblioteki ale zamist togo prisutni v inshih bibliotekah takih yak Boost Prikladi standartnih bibliotekStandartna biblioteka movi Si Standartna biblioteka C en en Factor standard library en PrimitkiBjarne Stroustrup The C Programming Language 3rd Ed Addison Wesley 1997 Guido van Rossum 1