Стандардна библиотека

Стандардна библиотека у програмирању је библиотека која је доступна кроз многе имплементације у програмском језику. Ове библиотеке су конвенционално описане у спецификацијама програмског језика; какогод, садржаји библиотеке тог језика такође могу бити одређени (у делу или целини) са више информативних вежби језика заједнице.

Стандардна библиотека језика је често третирана као део јетика њених корисника, иако су их дизајнери можда третирали као посебну јединицу. Многе језичке спецификације дефинишу језгарни скуп који мора бити доступан у свим имплементацијама, као додатак другим деловима која могу бити опционо уграђена. Линија између језика и њених библиотека се зато разликује од језика до језика. Управо, неки језици су дизајнирани тако да значења одређених синтатичких конструкција ни не могу бити описани без навођења на језгро библиотеке. На пример, у Јави, string литерал је дефинисан као инстанца java.lang.String класе; слично, у Smalltalk-у, анонимни израз функције ("блок") конструише инстанцу класе библиотеке BlockContext. С друге стране, Scheme садржи вишеструке кохерентне подскупове који конструишу остатак језика као макрои библиотеке, и тако дизајнери језика се ни не труде да кажу који делови језика морају бити уграђени као језичке конструкције, и који морају бити уграђени као делови библиотеке.

Садржаји уреди

Стандардне библиотеке типично укључују дефиниције за често коришћене алгоритме, структуре података, и механизме за унос и извоз. Зависно од конструкције доступне од стране домаћина језика, стандардна библиотека може садржати:

Многе стандардне библиотеке укључују дефиниције за барем следеће често коришћена постројења:

Филозофије уреди

Филозофије дизајна стандардне библиотеке широко варирају. На пример, Бјарне Стравструп, дизајнер C++-а, пише:[1]

Ово сугерише релативно малу стандардну библиотеку, која садржи само конструкције које "сваки програмер" може разумно захтевати приликом прављења велике колекције софтвера. Ово је филозофија која се користи у C и C++ стандардним библиотекама.

У супротности, Гвидо ван Росум, дизајнер Пајтона, је имао много више закључну визију стандардне библиотеке; у приручнику Пајтона, он пише:

Ван Росум иде на листу библиотека за обрађивање XML, XML-RPC, имејл порука, и локализацију, постројећи изостављање библиотека у C++-у.[2] Ова друга филозофија је често нађена у скриптним језицима (као што су Пајтон или Руби) или језицима који користе виртуалне машине, као што су Јава или .NET Framework језици. У C++, оваква постројења нису део стандардне библиотеке, већ су друге библиотеке, као што је Boost.

Примери стандардних библиотека уреди

Референце уреди

  1. ^ Bjarne Stroustrup. The C++ Programming Language. 3rd Ed. Addison-Wesley, 1997
  2. ^ Guido van Rossum.