Biblioteka (računarstvo)
U računarstvu, biblioteka predstavlja kolekciju nepromjenjivih resursa koju koriste programski jezici, 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 predstavlja kolekciju izvršavanja različitih ponašanja, napisanih u okviru programskih jezika. Pod "ponašanje" misli se na dobro definiran 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 korištenjem C funkcije pozivanja. Ono što razlikuje poziv u biblioteci od drugih funkcija istog programa, jeste način na koji je kod organiziran u sistemu. Kod biblioteke je organiziran 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 organiziran 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. 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 pridobije 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. Ona 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 vlastite 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 koje moderne aplikacije koriste napravljene su u takvim sistemima biblioteka.