Գրադարան (ծրագրավորում)
Գրադարանը ծրագրավորման մեջ (անգլ.՝ library)՝ ենթածրագրերի կամ օբյեկտների հավաքածու է, որն օգտագործվում է ծրագրային ապահովման մշակման համար։
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Ogg_vorbis_libs_and_application_dia.svg/350px-Ogg_vorbis_libs_and_application_dia.svg.png)
Ծրագրավորման որաշ լեզուներում (օրինակ, Python- ում) նույնն է, ինչ մոդուլը, իսկ որոշներում ՝ մի քանի մոդուլներ։ Օպերացիոն համակարգի (ՕՀ) և կիրառական ծրագրերի տեսանկյունից գրադարանները լինում են դինամիկ և ստատիկ։
«Ենթածրագրերի գրադարան» տերմինը, ըստ ամենայնի, առաջիններից մեկն է, որ հիշատակել են Մ. Ուիլկսը, Դ. Ուիլերը, Ս. Գիլը, որպես համակարգչում հաշվարկների կազմակերպման ձևերից մեկը[1][2]։ Ըստ նրանց գրքի շարադրանքի` գրադարան ասելով հասկանում ենք «կարճ, նախապես պատրաստված ծրագրեր` առանձին, հաճախ հանդիպող (ստանդարտ) հաշվարկային գործողությունների համար»[3]։
Կոմպիլացվող ծրագրերի գրադարաններ
[խմբագրել | խմբագրել կոդը]Դինամիկ գրադարաններ
[խմբագրել | խմբագրել կոդը]Դինամիկ գրադարանը մեքենայական կոդ պարունակող ֆայլ է։ Այն գործընթացի հիշողության մեջ է բեռնվում օպերացիոն համակարգի ծրագրի բեռնիչի կամ գործընթաց ստեղծելու ժամանակ, կամ արդեն ընթացող գործընթացի պահանջով, այսինքն՝ դինամիկ ձևով։
Դինամիկ գրադարանների ֆայլերի ընդլայնումները տարբեր օպերացիոն համակարգերում ՕՀ։
Ընդլայնումներ | Օպերացիոն համակարգ | Վերծանում | Նշումներ |
---|---|---|---|
so |
UNIX | անգլ.՝ shared object | |
dylib |
macOS | անգլ.՝ dynamic library | |
library |
AmigaOS | Պահված է տրամաբանական հատորում Libs: | |
dll |
Microsoft Windows, OS/2 | անգլ.՝ dynamic link library |
Կախված նշանակությունից տարբերակվում են՝
- Գրադարաններ, որոնք օգտագործվում են մեկ ծրագրի կողմից և պարունակում են ծրագրի գործունեության համար կարևոր գործառույթներ։ Թերությունն այն է, որ գրադարանի բացակայության դեպքում ծրագիրը չի աշխատի։
- Գրադարաններ, որոնք օգտագործվում են մեկ ծրագրի կողմից և պարունակում են լրացուցիչ գործառույթներ։ Օրինակ՝ պլագինների գրադարաններն օգտագործվում են ծրագրի ֆունկցիոնալությունն ընդլայնելու համար։
- Ընդհանուր օգտագործման գրադարաններ (անգլ.՝ shared library): Պարունակում են ֆունկցիաներ, որոնք օգտագործվում են մի քանի ծրագրերի կողմից։ Կարող են բեռնավորվել ՕՀ հասցեների տարածքում (անգլ.՝ system library), հիշողությունը տնտեսելու նպատակով. Գրադարանի մեկ օրինակը կարող է օգտագործվել մի քանի գործընթացների միջոցով։
- Ծրագիրը գրելիս ծրագրավորողը միայն թարգմանիչին (կոմպիլյատորին կամ ինտերպրետատորին) պետք է մատնանշի դեպի գրադարան տանող ուղին և գործառույթի անվանումը։ Ծրագրի մեջ չեն ներառվի ոչ գործառույթի աղբյուրի տեքստը, ոչ էլ այն գործարկող կոդը։
Առավելություններ՝
- Հիշողության ծավալի տնտեսում մի քանի գործընթացների կողմից մեկ գրադարանի օգտագործման հաշվին։
- Սխալների ուղղման հնարավորություն (պարզապես փոխարինելով գրադարանի ֆայլը և վերագործարկելով գործարկվող ծրագրերը)։
Թերություններ՝
- Կիրառական ծրագրավորման ինտերֆեյսի API-ի (անգլ.՝ application programming interface) խախտման հնարավորությունը (գրադարանում փոփոխություններ կատարելու ժամանակ գոյություն ունեցող ծրագրերը կարող են դադարեցնել աշխատանքը),
- դինամիկ գրադարանների հակասական տարբերակներ (տարբեր ծրագրեր կարող են սպասել գրադարանների տարբեր տարբերակների),
- Տարբեր գործընթացների ընթացքում միևնույն հասցեներում նույն գործառույթների հասանելիություն (պարզեցնում է խոցելի տեղերի շահագործումը. խնդիրը լուծելու համար ստեղծվել է PIC (անգլ.՝ position-independent code):
Ստատիկ գրադարաններ
[խմբագրել | խմբագրել կոդը]- Ստատիկ գրադարանը սկզբնական կոդով ֆայլ է կամ օբյեկտային ֆայլ, որը նախատեսված է ստեղծման փուլում ծրագիր ներմուծելու համար։
Սկզբնական կոդի տեսքով տարածվող գրադարանները կոմպիլյատորի միջոցով վերափոխվում են օբյեկտային ֆայլերի։ Այնուհետև կապողը միացնում է գրադարանների օբյեկտային ֆայլերը և ձեր ծրագրի օբյեկտային ֆայլերը մեկ իրականացվող ֆայլում։
Օրինակ, սկզբնական տեքստերում տարածվում են
- գրադարաններ Fortran լեզվի համար,
- Boost գրադարան C++ լեզվի համար
Այն գրադարանները, որոնք տարածված են օբյեկտային ֆայլերի տեսքով, արդեն իսկ պատրաստ են միացման համար։ Այնուհետև կապողը միացնում է գրադարանների օբյեկտային ֆայլերը և ձեր ծրագրի օբյեկտային ֆայլերը՝ իրականացվող ֆայլի ստեղծման ընթացքում։
Օբյեկտային ֆայլերի ստատիկ գրադարանների ընդլայնումները տարբեր օպերացիոն համակարգերում ՕՀ։
Ընդլայնում | Օպերացիոն համակարգ |
---|---|
«a » |
UNIX |
«lib » |
Microsoft Windows |
Որոշ կոմպիլացվող ծրագրավորման լեզուների ստանդարտ գրադարանները (Fortran, Pascal, C, C ++ և այլն) տարածվում են օբյեկտային ֆայլերի տեսքով։
Առավելությունները.
- բոլոր անհրաժեշտ գործառույթները ներառված են մեկ գործարկվող ֆայլում։
Թերությունները.
- գործարկվող ֆայլն ավելի շատ տարածք է զբաղեցնում կրիչում և հիշողությունում,
- եթե գրադարանում սխալներ հայտնաբերվեն, անհրաժեշտ է բոլոր ծրագրերի կրկնակի հավաքում։
Ինտերպրետացվող լեզուների գրադարաններ
[խմբագրել | խմբագրել կոդը]Գրադարանը ֆայլ է, որը պարունակում է կամ ինտերպրետացվող լեզվի կոդ կամ բայթկոդ վիրտուալ մեքենայի համար։
Օրինակ, Python լեզվի գրադարանները կարող են տարածվել կամ սկզբնական կոդով ֆայլերի տեսքով (ընդլայնում «py
»), կամ բայթկոդ (bytecode) ֆայլերի տեսքով[4](ընդլայնում «pyc
», «c» տառը վերցված է անգլ.՝ compiled բառից)։
Գրականություն
[խմբագրել | խմբագրել կոդը]Николай Джосьютис. C++ Стандартная библиотека. Для профессионалов = The C++ Standart Library. A Tutorial and Reference. — СПб.: Питер, 2004. — 730 с. — ISBN 5-94723-635-4.
Ծանոթագրություններ
[խմբագրել | խմբագրել կոդը]- ↑ 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.