Biblioteka (računarstvo)

Ilustracija aplikacije koju koristi datoteka Vorbisove biblioteke za pokretanje Ogg Vorbis datoteke

U računarstvu, biblioteka predstavlja kolekciju nepromjenljivih resursa koju koriste programski jezici, npr. za razvoj softvera. Biblioteke mogu da sadrže podatke za podešavanje, dokumentaciju, pomoćne podatke, poruke u šablonima, neke stare kodove i potprograme, klase, vrijednosti ili tipske specifikacije. U IBM-ovom 360 i njegovim novijim verzijama, biblioteke su određene kao odvojene grupe podataka.

Biblioteka redstavlja kolekciju izvršavanja različitih ponašanja, napisanih u okviru programskih jezika. Pod "ponašanje" misli se na dobro definisan pristup uz pomoć kojeg se uvodi ponašanje. Ovo znači da dok god razvijeniji programi koriste biblioteku za pravljenje sistemskih poziva, nije potrebno ponovo pisati iste sistemske pozive više puta. Pored toga, ponašanje omogućava ponovnu upotrebu od strane više nezavisnih programa. Program uvodi bibliotekom osigurano ponašanje preko mehanizma datog programa. Na primjer, u jednostavnom imperativnom programskom jeziku kao što je C, ponašanje u biblioteci se poziva koritšenjem C funkcije pozivanja. Ono što razlikuje poziv u biblioteci od drugih funkcija istog programa, jeste način na koji je kod organizovan u sistemu.

Kod biblioteke je organizovan na takav način da se može koristiti od strane više različitih programa koji nemaju nikakve veze jedan sa drugim, dok je kod dio programa organizovan tako da se može koristiti samo od strane jednog programa. Ova razlika može dovesti do hijerarhijske notacije kada program brzo raste, kao što je slučaj sa programom koji je sačinjen od više miliona linija koda. U ovom slučaju, postoje biblioteke koje se ponovo koriste od strane manjih nezavisnih dijelova velikog programa. Izdvajajuća karakteristika je ta da je biblioteka organizovana za potrebe koje se mogu ponovo koristiti od strane nezavisnih programa ili potprograma. Korisnik jedino mora da zna pristup, ali ne i unutrašnje detalje biblioteke.

Cilj biblioteke je da omogući ponovno korištenje ponašanja. Kada program pozove biblioteku, on pridobija ponašanje te biblioteke, tako da nema potrebe da program sam uvodi ponašanje. Biblioteke omogućavaju podjelu koda u modularnoj formi i laku distribuciju koda.

Ponašanje koje je implementirano od strane biblioteke, može biti povezano sa pozivajućim programom na različitim fazama programa. Ako se kodu biblioteke pristupa tokom pravljenja pozivajućeg programa, onda se biblioteka naziva - statična biblioteka. Alternativa je da se napravi izvršavanje pozivajućeg programa i da se ono distribuira odvojeno od biblioteke. Ponašanje biblioteke je povezano nakon izvršavanja kao dio početnog procesa izvršavanja, ili na polovini izvršavanja. U ovom slučaju biblioteka se naziva - dinamična biblioteka. Dinamična biblioteka se može učitati i linkovati kao dio pripremanja programa za izvršavanje uz pomoć linkera. U drugom slučaju, na polovini izvršavanja, aplikacija može zatražiti učitavanje traženog modula.

Većina prevedenih programskih jezika ima standardnu biblioteku, iako programeri takođe mogu da kreiraju njihove sopstvene biblioteke. Većina modernih softverskih sistema pravi biblioteke koje dozvoljavaju većinu sistemskih usluga. Takve biblioteke imaju modifikovane usluge koje traže moderne aplikacije.  Većina kodova korištenih od strane moderne aplikacije je napravljeno u takvim sistemima biblioteka.

HistorijaUredi

Najraniji koncepti programiranja povezanih sa bibliotekama, nastojali su da odvoje definiciju podataka od sprovođenja programa. JOVIAL je učinio koncept komunikacionih "bazena" popularnim 1959. godine, iako je usvojio ideju iz većih sistemskih SAGE softvera. Prateći principe odvojenih problema i sakrivanje informacija u računarstvu, "Svrha komunikacionog bazena je bila da omogući dijeljenje podataka među programima, uz pomoć centralizovanja opisa podataka".[1]

COBOL je također sadržao "jednostavne mogućnosti za sistemske biblioteke" 1959. godine.[2]

Drugi veliki doprinos konceptu savremene biblioteke se ogleda u formi inovacije potprograma Fortrana. Fortranovi potprogrami mogu biti sastavljeni tako da ne zavise jedan od drugog, ali kompajler nema linker. Samim tim, prije uvođenja modula u Fortran, provera tipova između Fotranovih potprograma je bila nemoguća.[3]

Simula 67 je bio uticajni prvi objektno orijentisani programski jezik, a njegove klase su bile približno slične modernom konceptu koji se koristi u Javi, C++, i C#. Klasni koncept Simule predstavlja noviju verziju paketa programskog jezika Ada i modula Module-2[4] Čak i kada je napravljen (1965. godine), Simula klase su se mogle uključivati u fajlove biblioteka i dodavati u vrijeme kompajliranja.[5]

Također pogledajteUredi

ReferenceUredi

  1. ^ Wexelblat 1981, str. 369
  2. ^ Wexelblat 1981, str. 274
  3. ^ Wilson i Clark 1988, str. 126.
  4. ^ Wilson i Clark 1988, str. 52.
  5. ^ Wexelblat 1981, str. 716.

LiteraturaUredi

  • Wexelblat, Richard (1981). History of Programming Languages. ACM Monograph Series. New York, NY: Academic Press. ISBN 978-0-12-745040-7.

Vanjski linkoviUredi