Стандартна бібліотекаУ програмуванні стандартна бібліотека (англ. standard library) — це бібліотека, що доступна в усіх реалізаціях даної мови програмування. Зміст такої бібліотеки зазвичай описано в специфікації мови, однак також він може частково або повністю визначатися більш неформальними практиками програмістів, що користуються нею. Зазвичай користувачі мови програмування вважають стандартну бібліотеку її частиною, хоча можливо, що розробники ставилися до неї як до окремого об'єкту. В багатьох мовах специфікацією визначається базовий функціонал, який повинен бути присутній в усіх реалізаціях, в доповненні до інших можливостей, реалізація яких необов'язкова. Таким чином, межа між мовою програмування та її бібліотеками індивідуальна для кожної мови. Дійсно — деякі мови розроблено таким чином, що значення певних синтаксичних конструкцій навіть не може бути описано без посилань до стандартної бібліотеки. Наприклад, в Java рядковий літерал[en] визначається як екземпляр класу java.lang.String; аналогічно в Smalltalk анонімний функціональний вираз («блок») створює BlockContext — екземпляр класу стандартної бібліотеки. З іншого боку, Scheme містить декілька когерентних підмножин, яких досить для того, щоб побудувати решту мови як макрос бібліотеки, і тому розробникам мови навіть не потрібно вказувати, які частини мови повинно бути реалізовано в вигляді мовних конструкцій, а які — у вигляді складу стандартної бібліотеки. ВмістСтандартні бібліотеки, як правило, включають в себе визначення для часто використовуваних алгоритмів, структур даних та механізмів введення-виведення. Залежно від обмежень конкретної мови стандартна бібліотека може складатися з: Більшість стандартних бібліотек включають в себе визначення принаймні таких найчастіше використовуваних інструментів як:
Основні принципиПогляди на основні принципи проектування стандартної бібліотеки дуже різняться. Наприклад, Б'ярн Страуструп, розробник C++, пише:
Це передбачає відносно невелику стандартну бібліотеку, яка містить тільки конструкції, які «кожен програміст» міг би розумно вимагати при розробці складної програми. Цей підхід використовується в стандартних бібліотеках C та C++. На противагу цьому, Гвідо ван Россум, розробник Python, має набагато ширше бачення стандартної бібліотеки; в навчальному посібнику з Python він пише:
Ван Россум перераховує бібліотеки для обробки XML, XML-RPC, роботи з електронною поштою та локалізації — засоби, які стандартна бібліотека C++ не включає. Цей підхід часто зустрічається в скриптових мовах (таких як в Python або Ruby) або в мовах, які використовують віртуальну машину (наприклад, Java або .NET Framework). У C++ такі інструменти не є частиною стандартної бібліотеки, але замість того присутні в інших бібліотеках (таких як Boost). Приклади стандартних бібліотек
Примітки |
Portal di Ensiklopedia Dunia