Библиотека (вычисления)


В информатике библиотека представляет собой набор энергонезависимых ресурсов, используемых компьютерными программами , часто для разработки программного обеспечения . Они могут включать данные конфигурации, документацию, справочные данные, шаблоны сообщений, предварительно написанный код и подпрограммы , классы , значения или спецификации типов . В IBM OS/360 и ее преемниках они называются секционированными наборами данных . [1]

Библиотека также представляет собой набор реализаций поведения, написанных на языке, который имеет четко определенный интерфейс , с помощью которого вызывается поведение. Например, люди, которые хотят написать программу более высокого уровня, могут использовать библиотеку для выполнения системных вызовов вместо того, чтобы выполнять эти системные вызовы снова и снова. Кроме того, поведение предусмотрено для повторного использования несколькими независимыми программами. Программа вызывает поведение, предоставляемое библиотекой, через механизм языка. Например, в простом императивном языкетаких как C, поведение в библиотеке вызывается с помощью обычного вызова функции C. Что отличает вызов функции библиотеки от вызова другой функции в той же программе, так это способ организации кода в системе. [2]

Код библиотеки организован таким образом, что он может использоваться несколькими программами, не связанными друг с другом, в то время как код, являющийся частью программы, организован для использования только внутри этой одной программы. Это различие может получить иерархическое представление, когда программа становится большой, например, многомиллионной программой. В этом случае могут быть внутренние библиотеки, которые повторно используются независимыми частями большой программы. Отличительной особенностью является то, что библиотека организована для повторного использования независимыми программами или подпрограммами, и пользователю нужно знать только интерфейс, а не внутренние детали библиотеки.

Ценность библиотеки заключается в повторном использовании стандартизированных элементов программы. Когда программа вызывает библиотеку, она получает поведение, реализованное внутри этой библиотеки, без необходимости реализовывать это поведение самостоятельно. Библиотеки поощряют обмен кодом по модульному принципу и упрощают распространение кода.

Поведение, реализуемое библиотекой, может быть связано с вызывающей программой на разных этапах жизненного цикла программы . Если доступ к коду библиотеки осуществляется во время сборки вызывающей программы, то библиотека называется статической библиотекой . [3] Альтернативой является создание исполняемого файла вызывающей программы и его распространение независимо от реализации библиотеки. Поведение библиотеки подключается после того, как исполняемый файл вызывается для выполнения либо как часть процесса запуска выполнения, либо в середине выполнения. В этом случае библиотека называется динамической библиотекой (загружается во время выполнения ).). Динамическая библиотека может быть загружена и связана при подготовке программы к выполнению с помощью компоновщика . Кроме того, в середине выполнения приложение может явно запросить загрузку модуля .

Большинство скомпилированных языков имеют стандартную библиотеку , хотя программисты также могут создавать свои собственные библиотеки. Большинство современных программных систем предоставляют библиотеки, реализующие большинство системных служб. В таких библиотеках организованы сервисы, необходимые современному приложению. Таким образом, большая часть кода, используемого современными приложениями, предоставляется в этих системных библиотеках.


Иллюстрация приложения, использующего libvorbisfile для воспроизведения файла Ogg Vorbis .
Женщина работает рядом с картотекой, содержащей библиотеку подпрограмм на бобинах с перфолентой для компьютера EDSAC.