Könyvtár (programozás)
Könyvtár (az angol könyvtárból ) a programozásban - szoftver (szoftver) fejlesztésére használt szubrutinok vagy objektumok gyűjteménye. Az operációs rendszer (OS) és az alkalmazásszoftver szempontjából a könyvtárakat dinamikusra és statikusra osztják.
A "szubrutinok könyvtára" kifejezést Wilks M. , Wheeler D. , Gill S. az elsők között említette a számítások számítógépen történő rendszerezésének egyik formájaként [1] [2] . A könyvükben elmondottak alapján a könyvtárat "egyedi, gyakran előforduló (standard) számítási műveletekhez szükséges rövid, előre elkészített programok" összességeként értelmezték [3] .
Könyvtárak a lefordított nyelvekhez
Dinamikus könyvtárak
A dinamikus könyvtár olyan fájl, amely gépi kódot tartalmaz . Az operációs rendszer programbetöltője tölti be a folyamatmemóriába a folyamat létrehozásakor vagy egy már futó folyamat kérésére , azaz dinamikusan. [négy]
A céltól függően vannak:
- Egyetlen program által használt, a program működése szempontjából kritikus funkciókat tartalmazó könyvtárak. Hátránya: könyvtár hiányában a program nem fog működni;
- Egyetlen program által használt, további funkciókat tartalmazó könyvtárak. Például a beépülő modul - könyvtárak egy program funkcionalitásának bővítésére szolgálnak;
- Megosztott könyvtárak ( eng. shared library ). Több program által használt funkciókat tartalmaz. Memóriatakarékosság céljából betölthetők az operációs rendszer címterébe ( eng. system library ) : a könyvtár egy példányát több folyamat is fogja használni. Ez utóbbi körülmény miatt az ilyen könyvtárakat gyakran megosztottnak nevezik .
Egy program írásakor elég, ha a programozó megadja a fordítónak ( fordítónak vagy értelmezőnek ) a könyvtár elérési útját és a függvény nevét . Sem a függvény forrásszövege, sem a végrehajtható kódja nem kerül bele a programba.
Előnyök:
- memória megtakarítás egy könyvtár több folyamat általi használata miatt ;
- a hibajavítás képessége (elegendő a könyvtárfájl cseréje és a futó programok újraindítása) a fő program kódjának megváltoztatása nélkül.
Hibák:
- az API megsértésének lehetősége , - a könyvtár változtatásakor a meglévő programok leállhatnak (elveszíthetik az interfész kompatibilitását [5] );
- a dinamikus könyvtárak verzióinak ütközése , - a különböző programoknak a könyvtár különböző verzióira lehet szükségük;
- ugyanazon funkciók elérhetősége ugyanazon a címeken a különböző folyamatokban - leegyszerűsíti a sebezhetőségek kihasználását ( pic (angol) a probléma megoldására találták ki ).
Statikus könyvtárak
A statikus könyvtár egy fájl formájú objektumfájl (gyakran a forráskóddal együtt szállítható), amelyből a kódot szelektíven vagy teljesen beillesztjük a programba a hivatkozási szakaszban.
A forráskódként terjesztett könyvtárakat a fordító objektumfájlokká konvertálja . A linker [6] ezután egyetlen végrehajtható fájlba egyesíti a könyvtárobjektum fájlokat és a program objektumfájljait.
Például a forrásban a következő szövegeket terjesztik:
Az objektumfájlként terjesztett könyvtárak készen állnak a csatolásra. A linker összekapcsolja a programkönyvtárak és a program objektumfájljait a végrehajtható fájl létrehozása során.
Statikus könyvtárak objektumfájl- kiterjesztései különböző operációs rendszerekben .
Számos lefordított programozási nyelv ( Fortran , Pascal , C , C++ és mások) szabványos könyvtárait objektumfájlokként terjesztik.
Előnyök:
- minden szükséges funkció egy futtatható fájlban található.
Hibák:
- a végrehajtható fájl több helyet foglal el a lemezen és a memóriában (ha nem szelektíven, hanem teljes egészében csatolja az objektumkönyvtár fájljaiból származó kódot);
- Ha hibákat talál a könyvtárban, akkor az összes programot újra kell készíteni.
Könyvtárak tolmácsolt nyelvekhez
A könyvtár egy olyan fájl, amely vagy egy értelmezett nyelvű kódot vagy egy virtuális gép bájtkódját tartalmazza .
Például a Python nyelv könyvtárai forráskóddal (“ py”) vagy [7] bájtkóddal rendelkező fájlokként terjeszthetők (a „ ” kiterjesztés pyc, a „c” betű angol fordítása ). A Python nyelv egyik könyvtára a Tkinter . [nyolc]
Lásd még
Jegyzetek
- ↑ Wilkes MV, Wheeler DJ, Gill S. Programok készítése elektronikus digitális számítógéphez. - Addison-Wesley, 1951.
- ↑ Wilks M., Wheeler D., Gill S. "Programozás elektronikus számológépekhez." Külföldi Irodalmi Kiadó, 1953
- ↑ Volchenskova, Nadezhda Ivanovna, A számítási matematikai szubrutinok könyvtárainak többgépes megvalósításának technológiája és életfenntartása Fortran nyelven, a disszertáció kivonata, 1984 . Letöltve: 2012. október 9. Az eredetiből archiválva : 2012. május 3.. (határozatlan)
- ↑ Saveljev A.M. A TRANLIB DINAMIKUS KÖNYVTÁR ALKALMAZÁSA REAGÁLÓ GÁZKEVERÉKEK SZÁLLÍTÁSI TULAJDONSÁGÁNAK KISZÁMÍTÁSÁHOZ (rus.) // "Aircraft Engines" folyóirat. — 2019.
- ↑ Robert Elder. Az interfészek a szoftverfejlesztés alapvető fogalmai . — 2020. Archiválva : 2021. március 6.
- ↑ jsmanifest. Linker JavaScriptben . — 2020. Archiválva : 2020. szeptember 11.
- ↑ Python fájlok fordítása Archiválva : 2021. február 6. a Wayback Machine -nél . Python dokumentáció a docs.python.org webhelyen.
- ↑ BUKHAROV T.A., NAFIKOVA A.R., MIGRANOVA E.A. A PYTHON programozási nyelv és könyvtárainak áttekintése (orosz) // COLLOQUIUM-JOURNAL. — 2019.
Irodalom
- Nicholas Josutis. C++ szabványos könyvtár. Szakembereknek = The C++ Standard Library. Oktatóanyag és referencia. - Szentpétervár. : Péter, 2004. - 730 p. - ISBN 5-94723-635-4 .
Szótárak és enciklopédiák |
|
---|
Bibliográfiai katalógusokban |
|
---|