Библиотека программ

А.П.Сапожников, Т.Ф.Сапожникова
Статья написана для
Большой Российской Энциклопедии,
т.3,стр.460-461, Москва,
Научное изд-во «Большая Российская энциклопедия», 2005.

БИБЛИОТЕКА ПРОГРАММ - организованная на машинном носителе совокупность компьютерных программ, доступ к которым осуществляется по их именам (или индексам). Б.п. ускоряет и облегчает процесс создания пользовательской программы, позволяя применять в качестве составных частей уже готовые функции (подпрограммы), для чего достаточно указать имя соответствующей функции. Благодаря Б.п. процесс программирования становится более технологичным, а сама пользовательская программа легче для восприятия. Существенной частью программного обеспечения Б.п. является набор сервисных программ (утилит), обеспечивающих создание библиотеки, включение и исключение функций (подпрограмм), вывод оглавления и др.

Б.п. могут состоять из объектных модулей (двоичных файлов, полученных в результате трансляции), или текстов программ на исходном языке программирования. Библиотека объектных модулей - это, как правило, файл, состоящий из заголовка и последовательно расположенных объектных модулей. В заголовке содержится список всех модулей с указанием смещения каждого из них от начала библиотеки. Когда главная программа прямо или косвенно вызывает библиотечную функцию, редактор связей находит определение этой функции в заголовке Б.п. и добавляет соответствующий модуль к главной программе, создавая единый исполняемый файл. В мультизадачной операционной системе такая статическая компоновка неэффективна, так как приводит к неэкономному использованию оперативной памяти. Напр., если две одновременно выполняемые программы вызывают одну функцию, то в памяти будут находиться две копии этой функции. Динамически связываемые (компонуемые) библиотеки, в отличие от статических, подключаются к основной программе непосредственно во время обращения к библиотечной функции. Во время компоновки программы в файле создается ссылка на Б.п., которая используется для динамического включения соответствующей библиотеки в адресное пространство вызывающего процесса при его выполнении. Таким образом, появляется возможность одновременного использования (разделения) динамических библиотек несколькими процессами. Использование динамических библиотек сокращает объем программы, но несколько усложняет установку приложения, поскольку оно нуждается еще и в соответствующих библиотечных файлах.

Программисты могут создать свои собственные Б.п. Однако для выполнения часто повторяющихся в различных программах операций (напр., ввода-вывода, управления памятью, вычисления элементарных математич. функций и др.), как правило, применяют функции из стандартных библиотек, которые поставляются вместе с транслятором языка или с операционной системой. Системы программирования для некоторых языков (напр., Фортрана) продолжают существовать во многом благодаря тому, что для них разработан развитый аппарат библиотечных функций. При выполнении определенных соглашений Б.п. можно использовать в программных проектах, реализуемых на нескольких языках программирования.

Достоинством Б.п. на исходном языке программирования считается их независимость от конкретного типа вычислительной системы. Часто такая независимость обеспечивается включением в тексты библиотечных программ директив условной компиляции, подстраивающих программу под конкретный тип компьютера и его операционную систему во время процесса компиляции. Эти Б.п. эффективно используются при решении научных и инженерных задач. Условно их можно разделить на библиотеки общего назначения, используемые для решения задач в различных областях, и специализированные библиотеки. Напр., в 1970-80-х гг. специалистами ОИЯИ (Дубна), МГУ, ФЭИ (Обнинск) и др. были созданы Б.п. для обработки спектрометрической информации, получаемой в ходе экспериментальных исследований, библиотека численного анализа МГУ, иерархия библиотек операционной системы "Дубна". Многие программы из этих библиотек до сих пор применяются на современных вычислит. системах. Широко известны и активно используются в нашей стране международные Б.п., такие как CERNLIB Европейского Центра Ядерных Исследований (Швейцария), CPC (Computer Physics Communications) и NAG (Numerical Algorithms Group), предназначенные для решения задач физики, математики, химии и др. смежных областей знаний.

Б. п., написанные на объектно-ориентированных языках, таких как С++ или Object Pascal, реализующие базовый набор понятий некоторой предметной области, часто называют библиотеками классов (компонентов). Напр., библиотеки стандартных элементов графического интерфейса (меню, полосы прокрутки, списки, флажки, кнопки, окна и др.). Библиотеки классов позволяют упростить разработку приложений, имеющих сложный интерфейс, облегчить взаимодействие с базами данных и т.д.

Литература:
  1. Мазный Г.Л., Программирование на БЭСМ-6 в системе "Дубна" - М., 1978.
  2. Гордеев А.В., Молчанов А.Ю., Системное программное обеспечение - "Питер", Санкт-Петербург, 2001.