Стандардна библиотека
Стандардна библиотека у програмирању је библиотека која је доступна кроз многе имплементације у програмском језику. Ове библиотеке су конвенционално описане у спецификацијама програмског језика; какогод, садржаји библиотеке тог језика такође могу бити одређени (у делу или целини) са више информативних вежби језика заједнице.
Стандардна библиотека језика је често третирана као део јетика њених корисника, иако су их дизајнери можда третирали као посебну јединицу. Многе језичке спецификације дефинишу језгарни скуп који мора бити доступан у свим имплементацијама, као додатак другим деловима која могу бити опционо уграђена. Линија између језика и њених библиотека се зато разликује од језика до језика. Управо, неки језици су дизајнирани тако да значења одређених синтатичких конструкција ни не могу бити описани без навођења на језгро библиотеке. На пример, у Јави, string литерал је дефинисан као инстанца java.lang.String класе; слично, у Smalltalk-у, анонимни израз функције ("блок") конструише инстанцу класе библиотеке BlockContext. С друге стране, Scheme садржи вишеструке кохерентне подскупове који конструишу остатак језика као макрои библиотеке, и тако дизајнери језика се ни не труде да кажу који делови језика морају бити уграђени као језичке конструкције, и који морају бити уграђени као делови библиотеке.
Садржаји
[уреди | уреди извор]Стандардне библиотеке типично укључују дефиниције за често коришћене алгоритме, структуре података, и механизме за унос и извоз. Зависно од конструкције доступне од стране домаћина језика, стандардна библиотека може садржати:
- Потпрограм
- Macro дефиниције
- Глобалне променљиве
- Дефиниције класа
- Шаблони
Многе стандардне библиотеке укључују дефиниције за барем следеће често коришћена постројења:
- Алгоритми (као што је алгоритам за сортирање)
- Структура података (као што су листе, стабла, и хеш табеле)
- Интеракција са платформом домаћина, укључујући увоз/извоз и позиве оперативних система
Филозофије
[уреди | уреди извор]Филозофије дизајна стандардне библиотеке широко варирају. На пример, Бјарне Стравструп, дизајнер C++-а, пише:[1]
Ово сугерише релативно малу стандардну библиотеку, која садржи само конструкције које "сваки програмер" може разумно захтевати приликом прављења велике колекције софтвера. Ово је филозофија која се користи у C и C++ стандардним библиотекама.
У супротности, Гвидо ван Росум, дизајнер Пајтона, је имао много више закључну визију стандардне библиотеке; у приручнику Пајтона, он пише:
Ван Росум иде на листу библиотека за обрађивање XML, XML-RPC, имејл порука, и локализацију, постројећи изостављање библиотека у C++-у.[2] Ова друга филозофија је често нађена у скриптним језицима (као што су Пајтон или Руби) или језицима који користе виртуалне машине, као што су Јава или .NET Framework језици. У C++, оваква постројења нису део стандардне библиотеке, већ су друге библиотеке, као што је Boost.
Примери стандардних библиотека
[уреди | уреди извор]- C стандардна библиотека, за C програмски језик
- C++ стандардна библиотека, за C++ програмски језик
- Библиотека Класе Оквира (FCL), за .NET Framework
- Библиотека Класе Јава (JCL), за Јава програмски језик, и Јава Платформу
- Factor стандардна библиотека, за Factor програмски језик
- Ruby стандардна библиотека, за Руби програмски језик
- Библиотека базних класа (CLI)
Референце
[уреди | уреди извор]- ^ Bjarne Stroustrup. The C++ Programming Language. 3rd Ed. Addison-Wesley, 1997
- ^ Guido van Rossum.