Մասնակից:Կարեն13/Ավազարկղ 4
Կաղապար:К объединению Կաղապար:Значения
Ծրագրավորման գրադարան (от անգլ.՝ library), ծրագրային ապահովման մշակման համար օգտագործվող ենթածրագրերի կամ օբյեկտների հավաքածու :
Որոշ ծրագրավորման լեզուներում (Օրինակ Python-ում) նույնն են, ինչ մոդուլը, որոշներում ՝ մի քանի մոդուլներ ։ Օպերացիոն համակարգի (OS) և կիրառական ծրագրային ապահովման տեսանկյունից գրադարանները բաժանվում են դինամիկ և ստատիկ խմբերի:
Библиоте́ка (от անգլ.՝ library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).
В некоторых языках программирования (например, в Python) то же, что и модуль, в некоторых — несколько модулей. С точки зрения операционной системы (ОС) и прикладного ПО, библиотеки разделяются на динамические и статические.
Термин «библиотека подпрограмм», по всей видимости, одними из первых упомянули Уилкс М., Уиллер Д., Гилл С. в качестве одной из форм организации вычислений на компьютере[1][2]. Исходя из изложенного в их книге, под библиотекой понимался набор «коротких, заранее заготовленных программ для отдельных, часто встречающихся (стандартных) вычислительных операций»[3].
Библиотеки для компилируемых языков[խմբագրել | խմբագրել կոդը]
Динамические библиотеки[խմբագրել | խմբագրել կոդը]
Динамическая библиотека — файл, содержащий машинный код. Загружается в память процесса загрузчиком программ операционной системы либо при создании процесса, либо по запросу уже работающего процесса, то есть динамически.
Расширения файлов динамических библиотек в разных ОС.
Расширение | ОС | Расшифровка | Примечание |
---|---|---|---|
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(անգլ.)).
Статические библиотеки[խմբագրել | խմբագրել կոդը]
Статическая библиотека — файл с исходным кодом или объектный файл, предназначенный для вставки в программу на этапе компоновки.
Библиотеки, распространяемые в виде исходного кода, преобразуются компилятором в объектные файлы. Затем компоновщик соединяет объектные файлы библиотек и объектные файлы вашей программы в один исполняемый файл.
Например, в исходных текстах распространяются:
Библиотеки, распространяемые в виде объектных файлов, уже готовы к компоновке. Компоновщик выполняет соединение объектных файлов библиотек и объектных файлов вашей программы во время создания исполняемого файла.
Расширения объектных файлов статических библиотек в разных ОС.
Расширение | ОС |
---|---|
«a » |
UNIX |
«lib » |
Microsoft Windows |
Стандартные библиотеки многих компилируемых языков программирования (Fortran, Pascal, C, C++ и других) распространяются в виде объектных файлов.
Достоинства:
- все необходимые функции включаются в один исполняемый файл.
Недостатки:
- исполняемый файл занимает больше места на диске и в памяти;
- при обнаружении ошибок в библиотеке требуется повторная сборка всех программ.
Библиотеки для интерпретируемых языков[խմբագրել | խմբագրել կոդը]
Библиотека — файл, содержащий либо код на интерпретируемом языке, либо байт-код для виртуальной машины.
Например, библиотеки для языка Python могут распространяться либо в виде файлов с исходным кодом (расширение «py
»), либо в виде файлов с байт-кодом[4] (расширение «pyc
», буква «c» от անգլ.՝ compiled).
См. также[խմբագրել | խմբագրել կոդը]
Примечания[խմբագրել | խմբագրել կոդը]
- ↑ Wilkes M. V., Wheeler D. J., Gill S. Preparation of programs for an electronic digital computer. — Addison-Wesley, 1951.
- ↑ Уилкс М., Уиллер Д., Гилл С. «Составление программ для электронных счётных машин». Издательство иностранной литературы, 1953
- ↑ Волченскова, Надежда Ивановна, Технология многомашинной реализации и жизнеобеспечения библиотек подпрограмм вычислительной математики на языке Фортран, автореферат к диссертации, 1984
- ↑ Компиляция файлов python. Документация языка Python на сайте docs.python.org.
Литература[խմբագրել | խմբագրել կոդը]
Николай Джосьютис C++ Стандартная библиотека. Для профессионалов = The C++ Standart Library. A Tutorial and Reference. — СПб.: Питер, 2004. — 730 с. — ISBN 5-94723-635-4