Bibliotek (programmering)
Bibliotek (fra engelsk bibliotek ) i programmering - en samling af underrutiner eller objekter , der bruges til at udvikle software (software). Fra operativsystemets (OS) og applikationssoftwares synspunkt er biblioteker opdelt i dynamiske og statiske.
Udtrykket "bibliotek af underrutiner" var tilsyneladende blandt de første, der blev nævnt af Wilks M. , Wheeler D. , Gill S. som en af former for organisering af beregninger på en computer [1] [2] . Baseret på, hvad der stod i deres bog, blev biblioteket forstået som et sæt af "korte, præparerede programmer til individuelle, hyppigt forekommende (standard) beregningsoperationer" [3] .
Biblioteker til kompilerede sprog
Dynamiske biblioteker
Et dynamisk bibliotek er en fil, der indeholder maskinkode . Indlæses i proceshukommelsen af operativsystemets programindlæser, enten når processen oprettes eller på anmodning af en allerede kørende proces , dvs. dynamisk. [fire]
Afhængigt af formålet er der:
- Biblioteker, der bruges af et enkelt program og indeholder funktioner, der er afgørende for programmets drift. Ulempe: i mangel af et bibliotek vil programmet ikke kunne fungere;
- Biblioteker, der bruges af et enkelt program og indeholder yderligere funktionalitet. For eksempel bruges plugin - biblioteker til at udvide funktionaliteten af et program;
- Shared library ( eng. shared library ). Indeholder funktioner, der bruges af flere programmer. De kan indlæses i OS-adresserummet ( eng. system library ) for at spare hukommelse : en kopi af biblioteket vil blive brugt af flere processer. På grund af sidstnævnte omstændighed kaldes sådanne biblioteker ofte delte .
Når du skriver et program, er det nok for en programmør at fortælle oversætteren ( kompileren eller tolken ) stien til biblioteket og navnet på funktionen . Hverken kildeteksten til funktionen eller dens eksekverbare kode vil blive inkluderet i programmet.
Fordele:
- besparelse af hukommelse på grund af brugen af et bibliotek ved flere processer ;
- evnen til at rette fejl (det er nok at erstatte biblioteksfilen og genstarte kørende programmer) uden at ændre koden for hovedprogrammet.
Fejl:
- muligheden for at overtræde API'en , - når der foretages ændringer i biblioteket, kan eksisterende programmer holde op med at fungere (mister grænsefladekompatibilitet [5] );
- konflikt mellem versioner af dynamiske biblioteker , - forskellige programmer kan have brug for forskellige versioner af biblioteket;
- tilgængeligheden af de samme funktioner på de samme adresser i forskellige processer - forenkler udnyttelsen af sårbarheder ( pic (engelsk) blev opfundet for at løse problemet ).
Statiske biblioteker
Et statisk bibliotek er en objektfil i form af en fil (kan ofte leveres sammen med kildekoden), hvorfra koden selektivt eller fuldstændigt indsættes i programmet på linkstadiet.
Biblioteker distribueret som kildekode konverteres af compileren til objektfiler . Linkeren [6] kombinerer derefter biblioteksobjektfilerne og dit programs objektfiler til en enkelt eksekverbar fil
.
For eksempel er i kildeteksterne fordelt:
Biblioteker distribueret som objektfiler er klar til at blive linket. Linkeren forbinder objektfilerne i bibliotekerne og objektfilerne i dit program under oprettelsen af den eksekverbare.
Objektfiludvidelser af statiske biblioteker i forskellige operativsystemer .
Standardbibliotekerne for mange kompilerede programmeringssprog ( Fortran , Pascal , C , C++ og andre) er distribueret som objektfiler.
Fordele:
- alle nødvendige funktioner er inkluderet i én eksekverbar fil.
Fejl:
- den eksekverbare fil fylder mere på disken og i hukommelsen (hvis den vedhæfter kode fra objektbiblioteksfiler i sin helhed og ikke selektivt);
- hvis der findes fejl i biblioteket, kræves en genopbygning af alle programmer.
Biblioteker til fortolkede sprog
Et bibliotek er en fil, der indeholder enten kode i et fortolket sprog eller bytekode til en virtuel maskine .
For eksempel kan biblioteker til Python-sproget distribueres enten som filer med kildekode (udvidelse “ py”), eller som filer med bytekode [7] (udvidelse “ pyc”, bogstavet “c” fra engelsk kompileret ). Et af bibliotekerne for Python-sproget er Tkinter . [otte]
Se også
Noter
- ↑ Wilkes MV, Wheeler DJ, Gill S. Forberedelse af programmer til en elektronisk digital computer. - Addison-Wesley, 1951.
- ↑ Wilks M., Wheeler D., Gill S. "Programmering for elektroniske regnemaskiner." Forlaget for udenlandsk litteratur, 1953
- ↑ Volchenskova, Nadezhda Ivanovna, Teknologi til multimaskine-implementering og livsunderstøttelse af biblioteker af beregningsmatematiske subrutiner i Fortran-sproget, abstrakt for afhandlingen, 1984 . Hentet 9. oktober 2012. Arkiveret fra originalen 3. maj 2012. (ubestemt)
- ↑ Savelyev A.M. ANVENDELSE AF DYNAMISK BIBLIOTEK TRANLIB TIL BEREGNING AF TRANSPORTEGENSKABER FOR REAGENDE GASBLANDINGER (rus.) // Journal "Aircraft Engines". – 2019.
- ↑ Robert Elder. Interfaces er et væsentligt koncept i softwareudvikling . — 2020. Arkiveret 6. marts 2021.
- ↑ jsmanifest. Linker i JavaScript . — 2020. Arkiveret den 11. september 2020.
- ↑ Kompilering af python-filer Arkiveret 6. februar 2021 på Wayback Machine . Python - dokumentation på docs.python.org.
- ↑ BUKHAROV T.A., NAFIKOVA A.R., MIGRANOVA E.A. Oversigt over programmeringssproget PYTHON og dets biblioteker (russisk) // COLLOQUIUM-JOURNAL. – 2019.
Litteratur
- Nicholas Josutis. C++ standardbibliotek. For professionelle = C++ Standard Library. En vejledning og reference. - Sankt Petersborg. : Peter, 2004. - 730 s. - ISBN 5-94723-635-4 .
Ordbøger og encyklopædier |
|
---|
I bibliografiske kataloger |
|
---|