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

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

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

Реклама

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

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

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

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

А. П. Сапожников, Т. Ф. Сапожникова.