Перайсці да зместу

Бібліятэка (праграмаванне)

З Вікіпедыі, свабоднай энцыклапедыі

Бібліятэка (ад англ.: library) у праграмаванні — зборнік падпраграм ці аб’ектаў, якія прымяняюцца для распрацоўкі праграмнага забеспячэння (ПЗ).

У некаторых мовах праграмавання (напрыклад, у Python) тое ж, што і модуль, у некаторых — некалькі модуляў. З пункту гледжання аперацыйнай сістэмы (АС) і прыкладнога ПЗ бібліятэкі падзяляюцца на дынамічныя і статычныя.

Тэрмін «бібліятэка падпраграм» адным з першых згадалі Морыс Вінсэнт Уілкс, Уіллер Д., Гілл С. у якасці адной з форм арганізацыі вылічэнняў на камп’ютары[1][2]. У іх кнізе бібліятэкай называўся набор «кароткіх, загадзя загатаваных праграм для асобных, часта ўжываных (стандартных) вылічальных аперацый»[3].

Дынамічныя бібліятэкі

[правіць | правіць зыходнік]

Частка асноўнай праграмы, якая загружаецца у АС па запыце працуючай праграмы ў час яе выканання, то бок дынамічна (Dynamic Link Library, DLL у Windows, агульныя аб'екты (англ.: shared objects) у UNIX). Адзін і той жа набор функцый (падпраграм) можа быць выкарастаны адразу ў некалькіх працуючых праграмах, з-за чаго яны маюць яшчэ адну назву — бібліятэкі агульнага карыстання (англ.: shared library). Калі дынамічная бібліятэка загружана ў адрасную прастору самой АС (System Library), то адзіная копія можа быць выкарыстана мноствам працуючых з ёю праграм, што станоўча сказваецца на ступені ўжывання рэсурсу АЗП. Дынамічныя бібліятэкі могуць змяшчаць у сабе як крытычныя для работы праграмы часткі, так і дадатковыя функцыі. Дадатковым плюсам такога падыходу з'яўляецца тое, што дынамічная бібліятэка можны выкарыстоўваць у якасці plugin'а, які пашырае функцыйнасць праграмы. Мінусам з'яўляецца тое, што ў выпадку, калі модуль, які змяшчае ў сабе крытычную частку, адсутнічае, праграма не зможа працягнуць работу.

Дынамічныя бібліятэкі звычайна захоўваюцца ў пэўным месцы і маюць стандартнае пашырэнне. Напрыклад, файлы .library у лагічным томе Libs: у AmigaOS; у Microsoft Windows і OS/2 файлы бібліятэк агульнага карыстання маюць пашырэнне .dll; у UNIX‐падобных АС — звычайна .so; у Mac OS — .dylib.

Пры напісанні праграмы праграмісту досыць указаць транслятару (кампілятару альбо інтэрпрэтатару) мовы праграмавання, што трэбна падключыць пэўную бібліятэку і выкарыстаць функцыю з яе. Ні зыходны тэкст, ні машынны код функцыі ў склад праграмы на гэтым этапе не ўваходзіць.

Статычныя бібліятэкі

[правіць | правіць зыходнік]

Могуць быць у выглядзе зыходнага тэксту, які падключаецца праграмістам да сваёй праграмы на этапе напісання (напрыклад, для мовы Fortran існуе велізарная колькасць бібліятэк для рашэння розных задач менавіта ў зыходных тэкстах), альбо ў выглядзе аб'ектных файлаў, якія прывязваюцца (лінкуюцца) да выканальнай праграмы на этапе кампіляцыі (у Microsoft Windows такія файлы маюць пашырэнне .lib, у UNIX‐падобных АС — звычайна .a). У выніку праграма ўключае ў сябе ўсе патрэбныя функцыі, што робіць яе аўтаномнай, але павялічвае памер. Без статычных бібліятэк аб'ектных модуляў (файлаў) немагчыма ўжыванне большасці звычайных кампілюючых моў і сістэм праграмавання: Fortran, Pascal, C, C++ і іншых.

Зноскі

  1. Wilkes M. V., Wheeler D. J., Gill S. Preparation of Programs for an Electronic Digital Computer. — Addison-Wesley, 1951.
  2. Уилкс М., Уиллер Д., Гилл С. «Составление программ для электронных счётных машин». Издательство иностранной литературы, 1953
  3. Волченскова, Надежда Ивановна, Технология многомашинной реализации и жизнеобеспечения библиотек подпрограмм вычислительной математики на языке Фортран, автореферат к диссертации, 1984
  • Николай Джосьютис. C++ Стандартная библиотека. Для профессионалов = The C++ Standart Library. A Tutorial and Reference. — СПб.: Питер, 2004. — 730 с. — ISBN 5-94723-635-4.