Программная библиотека
Эту страницу предлагается объединить со страницей Разделяемая библиотека. |
Библиоте́ка (от англ. library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО). С точки зрения операционной системы (ОС) и прикладного ПО, библиотеки разделяются на динамические и статические.
Термин «библиотека подпрограмм», по всей видимости, одними из первых упомянули Уилкс М., Уиллер Д., Гилл С. в качестве одной из форм организации вычислений на компьютере. Исходя из изложенного в их книге, под библиотекой понимался набор «коротких, заранее заготовленных программ для отдельных, часто встречающихся (стандартных) вычислительных операций».
Библиотеки для компилируемых языков
Динамические библиотеки
Динамическая библиотека — файл, содержащий машинный код. Загружается в память процесса загрузчиком программ операционной системы либо при создании процесса, либо по запросу уже работающего процесса, то есть динамически.
| Расширение | ОС | Расшифровка | Примечание |
|---|---|---|---|
so | UNIX | англ. shared object | |
dylib | Mac OS | англ. dynamic library | |
library | AmigaOS | Хранятся в логическом томе Libs: | |
dll | Microsoft Windows, OS/2 | англ. dynamic link library |
В зависимости от назначения различают:
- Библиотеки, используемые одной программой и содержащие критические для работы программы функции. Недостаток: при отсутствии библиотеки программа не сможет работать;
- Библиотеки, используемые одной программой и содержащие дополнительные функции. Например, библиотеки плагинов используются для расширения функционала программы;
- Библиотеки общего пользования (англ. shared library). Содержат функции, используемые несколькими программами. Могут загружаться в адресное пространство ОС (англ. system library) для экономии памяти: одна копия библиотеки будет использоваться несколькими процессами. В силу последнего обстоятельства такие библиотеки нередко называют разделяемыми.
При написании программы программисту достаточно указать транслятору (компилятору или интерпретатору) путь к библиотеке и имя функции. Ни исходный текст функции, ни её исполняемый код в состав программы не войдут.
Достоинства:
- экономия памяти за счёт использования одной библиотеки несколькими процессами;
- возможность исправления ошибок (достаточно заменить файл библиотеки и перезапустить работающие программы) без изменения кода основной программы.
Недостатки:
- возможность нарушения API , — при внесении изменений в библиотеку существующие программы могут перестать работать (утратят совместимость по интерфейсу);
- конфликт версий динамических библиотек, — разные программы могут нуждаться в разных версиях библиотеки;
- доступность одинаковых функций по одинаковым адресам в разных процессах, — упрощает эксплуатацию уязвимостей (для решения проблемы изобретён pic (англ.)).
Статические библиотеки
Статическая библиотека — объектный файл в виде файла (нередко может быть поставлен вместе с исходным кодом), код из которого выборочно или полностью вставляется в программу на этапе компоновки.
Библиотеки, распространяемые в виде исходного кода, преобразуются транслятором в объектные файлы. Затем компоновщик соединяет объектные файлы библиотек и объектные файлы вашей программы в один исполняемый файл.
Например, в исходных текстах распространяются:
- библиотеки для языка Fortran;
- библиотека Boost для языка C++.
Библиотеки, распространяемые в виде объектных файлов, уже готовы к компоновке. Компоновщик выполняет соединение объектных файлов библиотек и объектных файлов вашей программы во время создания исполняемого файла.
Расширения объектных файлов статических библиотек в разных ОС.
| Расширение | ОС |
|---|---|
«a» | UNIX |
«lib» | Microsoft Windows |
Стандартные библиотеки многих компилируемых языков программирования (Fortran, Pascal, C, C++ и других) распространяются в виде объектных файлов.
Достоинства:
- все необходимые функции включаются в один исполняемый файл.
Недостатки:
- исполняемый файл занимает больше места на диске и в памяти, (если присоединяет код из объектных библиотечных файлов целиком, а не выборочно);
- при обнаружении ошибок в библиотеке требуется пересборка всех программ.
Библиотеки для интерпретируемых языков
Библиотека — файл, содержащий либо код на интерпретируемом языке, либо байт-код для виртуальной машины.
Например, библиотеки для языка Python могут распространяться либо в виде файлов с исходным кодом (расширение «py»), либо в виде файлов с байт-кодом (расширение «pyc», буква «c» от англ. compiled). Одной из библиотек для языка Python является Tkinter.
См. также
- Компоновщик
- Автосвязывание
Примечания
- Wilkes M. V., Wheeler D. J., Gill S. Preparation of programs for an electronic digital computer. — Addison-Wesley, 1951.
- Уилкс М., Уиллер Д., Гилл С. «Составление программ для электронных счётных машин». Издательство иностранной литературы, 1953
- Волченскова, Надежда Ивановна, Технология многомашинной реализации и жизнеобеспечения библиотек подпрограмм вычислительной математики на языке Фортран, автореферат к диссертации, 1984. Дата обращения: 9 октября 2012. Архивировано 3 мая 2012 года.
- Савельев А.М. ПРИМЕНЕНИЕ ДИНАМИЧЕСКОЙ БИБЛИОТЕКИ TRANLIB ДЛЯ РАСЧЕТА ТРАНСПОРТНЫХ СВОЙСТВ РЕАГИРУЮЩИХ ГАЗОВЫХ СМЕСЕЙ (рус.) // Журнал "АВИАЦИОННЫЕ ДВИГАТЕЛИ". — 2019.
- Robert Elder. Интерфейсы — важнейшая концепция в разработке ПО. — 2020. Архивировано 6 марта 2021 года.
- jsmanifest. Компоновщик в JavaScript. — 2020. Архивировано 11 сентября 2020 года.
- Компиляция файлов python Архивная копия от 6 февраля 2021 на Wayback Machine. Документация языка Python на сайте docs.python.org.
- БУХАРОВ Т.А., НАФИКОВА А.Р., МИГРАНОВА Е.А. Обзор языка программирования PYTHON и его библиотек (рус.) // COLLOQUIUM-JOURNAL. — 2019.
Литература
- Николай Джосьютис. C++ Стандартная библиотека. Для профессионалов = The C++ Standart Library. A Tutorial and Reference. — СПб.: Питер, 2004. — 730 с. — ISBN 5-94723-635-4.
У этой статьи есть несколько проблем, помогите их исправить: |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Программная библиотека, Что такое Программная библиотека? Что означает Программная библиотека?
Etu stranicu predlagaetsya obedinit so stranicej Razdelyaemaya biblioteka Poyasnenie prichin i obsuzhdenie na stranice Vikipediya K obedineniyu 12 yanvarya 2020 Obsuzhdenie dlitsya ne menee nedeli podrobnee Ne udalyajte shablon do podvedeniya itoga obsuzhdeniya U etogo termina sushestvuyut i drugie znacheniya sm Biblioteka znacheniya Bibliote ka ot angl library v programmirovanii sbornik podprogramm ili obektov ispolzuemyh dlya razrabotki programmnogo obespecheniya PO S tochki zreniya operacionnoj sistemy OS i prikladnogo PO biblioteki razdelyayutsya na dinamicheskie i staticheskie Termin biblioteka podprogramm po vsej vidimosti odnimi iz pervyh upomyanuli Uilks M Uiller D Gill S v kachestve odnoj iz form organizacii vychislenij na kompyutere Ishodya iz izlozhennogo v ih knige pod bibliotekoj ponimalsya nabor korotkih zaranee zagotovlennyh programm dlya otdelnyh chasto vstrechayushihsya standartnyh vychislitelnyh operacij Biblioteki dlya kompiliruemyh yazykovDinamicheskie biblioteki Dinamicheskaya biblioteka fajl soderzhashij mashinnyj kod Zagruzhaetsya v pamyat processa zagruzchikom programm operacionnoj sistemy libo pri sozdanii processa libo po zaprosu uzhe rabotayushego processa to est dinamicheski Rasshireniya imen fajlov dinamicheskih bibliotek v raznyh OS Rasshirenie OS Rasshifrovka Primechanieso UNIX angl shared objectdylib Mac OS angl dynamic librarylibrary AmigaOS Hranyatsya v logicheskom tome Libs a href wiki DLL class mw redirect title DLL dll a Microsoft Windows OS 2 angl dynamic link library V zavisimosti ot naznacheniya razlichayut Biblioteki ispolzuemye odnoj programmoj i soderzhashie kriticheskie dlya raboty programmy funkcii Nedostatok pri otsutstvii biblioteki programma ne smozhet rabotat Biblioteki ispolzuemye odnoj programmoj i soderzhashie dopolnitelnye funkcii Naprimer biblioteki plaginov ispolzuyutsya dlya rasshireniya funkcionala programmy Biblioteki obshego polzovaniya angl shared library Soderzhat funkcii ispolzuemye neskolkimi programmami Mogut zagruzhatsya v adresnoe prostranstvo OS angl system library dlya ekonomii pamyati odna kopiya biblioteki budet ispolzovatsya neskolkimi processami V silu poslednego obstoyatelstva takie biblioteki neredko nazyvayut razdelyaemymi Pri napisanii programmy programmistu dostatochno ukazat translyatoru kompilyatoru ili interpretatoru put k biblioteke i imya funkcii Ni ishodnyj tekst funkcii ni eyo ispolnyaemyj kod v sostav programmy ne vojdut Dostoinstva ekonomiya pamyati za schyot ispolzovaniya odnoj biblioteki neskolkimi processami vozmozhnost ispravleniya oshibok dostatochno zamenit fajl biblioteki i perezapustit rabotayushie programmy bez izmeneniya koda osnovnoj programmy Nedostatki vozmozhnost narusheniya API pri vnesenii izmenenij v biblioteku sushestvuyushie programmy mogut perestat rabotat utratyat sovmestimost po interfejsu konflikt versij dinamicheskih bibliotek raznye programmy mogut nuzhdatsya v raznyh versiyah biblioteki dostupnost odinakovyh funkcij po odinakovym adresam v raznyh processah uproshaet ekspluataciyu uyazvimostej dlya resheniya problemy izobretyon pic angl Staticheskie biblioteki Staticheskaya biblioteka obektnyj fajl v vide fajla neredko mozhet byt postavlen vmeste s ishodnym kodom kod iz kotorogo vyborochno ili polnostyu vstavlyaetsya v programmu na etape komponovki Biblioteki rasprostranyaemye v vide ishodnogo koda preobrazuyutsya translyatorom v obektnye fajly Zatem komponovshik soedinyaet obektnye fajly bibliotek i obektnye fajly vashej programmy v odin ispolnyaemyj fajl Naprimer v ishodnyh tekstah rasprostranyayutsya biblioteki dlya yazyka Fortran biblioteka Boost dlya yazyka C Biblioteki rasprostranyaemye v vide obektnyh fajlov uzhe gotovy k komponovke Komponovshik vypolnyaet soedinenie obektnyh fajlov bibliotek i obektnyh fajlov vashej programmy vo vremya sozdaniya ispolnyaemogo fajla Rasshireniya obektnyh fajlov staticheskih bibliotek v raznyh OS Rasshirenie OS a UNIX lib Microsoft Windows Standartnye biblioteki mnogih kompiliruemyh yazykov programmirovaniya Fortran Pascal C C i drugih rasprostranyayutsya v vide obektnyh fajlov Dostoinstva vse neobhodimye funkcii vklyuchayutsya v odin ispolnyaemyj fajl Nedostatki ispolnyaemyj fajl zanimaet bolshe mesta na diske i v pamyati esli prisoedinyaet kod iz obektnyh bibliotechnyh fajlov celikom a ne vyborochno pri obnaruzhenii oshibok v biblioteke trebuetsya peresborka vseh programm Biblioteki dlya interpretiruemyh yazykovBiblioteka fajl soderzhashij libo kod na interpretiruemom yazyke libo bajt kod dlya virtualnoj mashiny Naprimer biblioteki dlya yazyka Python mogut rasprostranyatsya libo v vide fajlov s ishodnym kodom rasshirenie py libo v vide fajlov s bajt kodom rasshirenie pyc bukva c ot angl compiled Odnoj iz bibliotek dlya yazyka Python yavlyaetsya Tkinter Sm takzheKomponovshik AvtosvyazyvaniePrimechaniyaWilkes M V Wheeler D J Gill S Preparation of programs for an electronic digital computer Addison Wesley 1951 Uilks M Uiller D Gill S Sostavlenie programm dlya elektronnyh schyotnyh mashin Izdatelstvo inostrannoj literatury 1953 Volchenskova Nadezhda Ivanovna Tehnologiya mnogomashinnoj realizacii i zhizneobespecheniya bibliotek podprogramm vychislitelnoj matematiki na yazyke Fortran avtoreferat k dissertacii 1984 neopr Data obrasheniya 9 oktyabrya 2012 Arhivirovano 3 maya 2012 goda Savelev A M PRIMENENIE DINAMIChESKOJ BIBLIOTEKI TRANLIB DLYa RASChETA TRANSPORTNYH SVOJSTV REAGIRUYuShIH GAZOVYH SMESEJ rus Zhurnal AVIACIONNYE DVIGATELI 2019 Robert Elder Interfejsy vazhnejshaya koncepciya v razrabotke PO 2020 Arhivirovano 6 marta 2021 goda jsmanifest Komponovshik v JavaScript 2020 Arhivirovano 11 sentyabrya 2020 goda Kompilyaciya fajlov python Arhivnaya kopiya ot 6 fevralya 2021 na Wayback Machine Dokumentaciya yazyka Python na sajte docs python org BUHAROV T A NAFIKOVA A R MIGRANOVA E A Obzor yazyka programmirovaniya PYTHON i ego bibliotek rus COLLOQUIUM JOURNAL 2019 LiteraturaNikolaj Dzhosyutis C Standartnaya biblioteka Dlya professionalov The C Standart Library A Tutorial and Reference SPb Piter 2004 730 s ISBN 5 94723 635 4 U etoj stati est neskolko problem pomogite ih ispravit V state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 8 oktyabrya 2012 V state est spisok istochnikov no ne hvataet snosok Bez snosok slozhno opredelit iz kakogo istochnika vzyato kazhdoe otdelnoe utverzhdenie Vy mozhete uluchshit statyu prostaviv snoski na istochniki podtverzhdayushie informaciyu Svedeniya bez snosok mogut byt udaleny 8 oktyabrya 2012 Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom
